The TesSeRact CXL User Interface Development System Library Reference Manual Version 5.51 -- October 1, 1990 Copyright 1990, Innovative Data Concepts All Rights Reserved Innovative Data Concepts 1657 The Fairways Suite 101 Jenkintown, PA 19046 Voice: 1-215-884-3373 Orders: 1-800-926-4551 FAX: 1-215-886-4225 TCXL is part of IDC's TesSeRact Development Tools series of programmer's products. This document; other accompanying written and disk-based notes and specifications; and all referenced and related program files accompanying this document are copyrighted by Innovative Data Concepts. For ordering information, see the ORDER.DOC file provided with this package. For shareware distribution requirements, see the VENDOR.DOC file. _______ ____|__ | (R) --| | |------------------- | ____|__ | Association of | | |_| Shareware |__| o | Professionals -----| | |--------------------- |___|___| MEMBER The TesSeRact Development Tools are distributed as shareware -- this means that we encourage users, subject to restrictions described in the License Agreement, to share copies of this program with friends, associates and bulletin boards. You may not share the registered version of The TesSeRact Development Tools; however, you may request a free shareware disk by completing the form in VENDOR.DOC. If you make copies of The TesSeRact Development Tools, you must include all files in the original distribution files, as well as the documentation archive. You are not permitted to distribute The TesSeRact Development Tools without this documentation. Innovative Data Concepts is a member of the Association of Shareware Professionals. The ASP has established stringent standards for its members. ASP wants to make sure that the shareware principle works for you. If you are unable to resolve a problem with an ASP member (other than technical support), ASP may be able to help. Please write to the ASP Ombudsman at P.O. Box 5786, Bellevue, WA 98006. Trademarks SWAPSK, SWAPSP, SWAPTN, SWAPMT, SWAPMM, SWAPSH, SWAPDT, SWAPNG and The SWAP Utilities are trademarks of Innovative Data Concepts. TesSeRact is a trademark of Innovative Data Concepts CompuServe is a registered trademark of CompuServe Incorporated. DESQview is a trademark of Quarterdeck Office Systems. Epson is a registered trademark of Seiko Epson Corporation. IBM is a registered trademark of International Business Machines. LIM and EMS are trademarks of Lotus, Intel, and Microsoft Corporations. Lotus is a registered trademark of Lotus Development Corporation. Microsoft is a registered trademark of Microsoft Corporation. Turbo C and Turbo C++ are registered trademarks of Borland International. UltraVision is a trademark of Personics, Inc. Zortech is a trademark of Zortech Inc. Page ii TesSeRact CXL V5.5 Documentation Detailed Table of Contents Introductory Notes.............................................ii Preliminary Notes & Comments................................1 User Level Functions................................................2 Menu System.....................................................2 Menu Item Manipulation......................................2 ItmCur..................................................2 ItmDis..................................................3 ItmDsp..................................................3 ItmEna..................................................4 ItmFun..................................................5 ItmGet..................................................6 ItmKey..................................................6 ItmLoc..................................................7 ItmNxt..................................................7 ItmSet..................................................8 ItmTxt..................................................8 Menu Definition and Access..................................9 MnuAct..................................................9 MnuBeg.................................................10 MnuCur.................................................11 MnuEnd.................................................12 MnuItm.................................................13 MnuShow................................................14 Entry System...................................................15 Entry Form Manipulation....................................15 EntDef.................................................15 EntFld.................................................16 EntKey.................................................17 EntSep.................................................17 EntShow................................................18 Entry Field Manipulation...................................19 FldCur.................................................19 FldFun.................................................20 FldKey.................................................21 FldLoc.................................................22 Internal Entry Routines....................................23 _FldDsp................................................23 _FldDecL...............................................23 _FldDecR...............................................23 Help System....................................................24 HlpAdd.................................................24 HlpClr.................................................24 HlpCur.................................................25 HlpDef.................................................26 HlpDrop................................................26 HlpOff.................................................27 HlpPop.................................................27 HlpPush................................................28 HlpSet.................................................28 HlpShow................................................29 HlpWind................................................29 TesSeRact CXL V5.5 Documentation Page iii Selection System...............................................30 SelAttr................................................30 SelFile................................................31 SelStr.................................................32 SelTxt.................................................33 _Select................................................34 Middle Level Functions.............................................35 Window System..................................................35 Error Handling.............................................35 Wperror................................................35 WerrMsg................................................35 Werror.................................................36 General Window Manipulation................................36 Wactiv.................................................36 WcloseAll..............................................37 Windowat...............................................37 WinLoc.................................................38 Wisactiv...............................................38 Wopen..................................................39 WpopUp.................................................40 Wrestore...............................................41 Wsave..................................................42 WsetEsc................................................43 WsetFil................................................43 WsetFun................................................44 WsetTab................................................44 WsetTxt................................................45 Wunhide................................................46 Wunlink................................................46 Wwprints...............................................47 Active Window Movement.....................................47 Wcenter................................................47 Wclose.................................................48 Wcopy..................................................49 Wdrag..................................................49 Wdump..................................................50 Whandle................................................50 Whide..................................................51 Wmove..................................................51 Wsize..................................................52 Wslide.................................................52 Active Window Control......................................53 WchgAtr................................................53 WchkBox................................................53 WchkCol................................................54 WchkPos................................................54 WchkRow................................................55 Wclear.................................................55 WclrEol................................................56 WclrEos................................................56 WclrWin................................................57 WfilBox................................................57 WlinDel................................................58 WlinIns................................................58 WscrBox................................................59 WscrWin................................................60 Page iv TesSeRact CXL V5.5 Documentation Active Border..............................................61 Wborder................................................61 Wbprintc...............................................61 WdrwBox................................................62 WdrwHor................................................63 WdrwVer................................................64 Wmessage...............................................65 Wtitle.................................................66 Active Shadow..............................................67 Wshadoff...............................................67 Wshadow................................................68 Active Cursor..............................................69 WcurGet................................................69 WcurGt_................................................69 WcurPut................................................70 WcurPt_................................................70 Wgotoxy................................................71 Wpgotoxy...............................................72 WposGet................................................72 Active Window Formatted Output.............................73 WdupChr................................................73 WdupStr................................................73 Wputc..................................................74 Wputs..................................................75 Wputns.................................................76 Wputsw.................................................76 Wputf..................................................77 WputFmt................................................77 WputCen................................................78 Wputrj.................................................78 _Wputl.................................................79 Active Window Unformatted Output...........................79 WdupChrA...............................................79 WdupStrA...............................................80 Wprtc..................................................81 Wprts..................................................82 Wprtns.................................................83 Wprtsw.................................................83 Wprtf..................................................84 WprtFmt................................................85 WprtCen................................................86 Wprtrj.................................................87 Display System.................................................88 Window Builders............................................88 VclrBox................................................88 VdrwBox................................................89 VdrwBx_................................................89 VfilBox................................................89 VfilBx_................................................89 Vsave..................................................90 Vrestore...............................................90 TesSeRact CXL V5.5 Documentation Page v Video Control..............................................91 VidInit................................................91 VidMode................................................91 VidParm................................................92 VidTerm................................................92 VidType................................................93 VsetLin................................................93 Vclear.................................................94 VclrEol................................................94 VclrScr................................................94 Video Output...............................................95 Vprintc................................................95 Vprints................................................96 VputSpa................................................96 Vputc..................................................97 Vputw..................................................97 Vputw_.................................................97 Vscroll................................................98 Vscrol_................................................98 Vgetw..................................................98 Vgetw_.................................................98 Cursor Control.............................................99 VcurGet................................................99 VcurGt_................................................99 VcurHid...............................................100 VcurPut...............................................101 VcurPt_...............................................101 VcurSet...............................................102 VcurSiz...............................................102 VcurSz_...............................................102 Vgotoxy...............................................103 VposGet...............................................103 Attribute Control.........................................104 VatrInv...............................................104 VatrMap...............................................105 VatrRev...............................................106 VatrSet...............................................106 VatrTxt...............................................106 Vattrib...............................................107 Video-Disk Routines.......................................107 VsavBox...............................................107 VsavBx_...............................................107 VlodBox...............................................108 VsavScr...............................................108 VlodScr...............................................108 Input System..................................................109 Active Window Input.......................................109 KwGetCf...............................................109 KwGetCh...............................................110 KwGetFmt..............................................111 KwGetSn...............................................112 KwGetSt...............................................112 KwGetYn...............................................113 KwScanf...............................................114 Page vi TesSeRact CXL V5.5 Documentation Default Video Input.......................................115 KvGetCf...............................................115 KvGetCh...............................................115 KvGetFmt..............................................116 KvGetSn...............................................116 KvGetSt...............................................117 KvGetYn...............................................117 KvScanf...............................................118 Asynchronous Input........................................118 KbndChg...............................................118 KbndClr...............................................119 KbndFre...............................................119 KbndIdle..............................................119 KbndSet...............................................120 Input With No Echo........................................120 KeyClear..............................................120 KeyEvent..............................................121 KeyGetc...............................................121 KeyPeek...............................................122 KeyStat...............................................122 KeyTime...............................................122 KeyWait...............................................123 Strings System................................................123 Trimming..................................................123 strltrim..............................................124 strrtrim..............................................124 strtrim...............................................124 Changing..................................................125 strchg................................................125 strichg...............................................125 strischg..............................................126 strschg...............................................126 Checksum..................................................127 strchksum.............................................127 strichksum............................................127 Delete/Insert.............................................128 strdel................................................128 strdela...............................................128 stridel...............................................129 stridela..............................................129 strins................................................130 Inclusion.................................................130 strinc................................................130 striinc...............................................131 strocc................................................131 striocc...............................................132 strsocc...............................................132 strisocc..............................................133 Replacement...............................................133 strsrep...............................................133 strisrep..............................................134 Substrings................................................134 strmid................................................134 strleft...............................................135 strright..............................................135 TesSeRact CXL V5.5 Documentation Page vii Justification.............................................136 strljust..............................................136 strrjust..............................................136 strrol................................................137 strror................................................137 strshl................................................138 strshr................................................138 Matching..................................................139 strbmatch.............................................139 strmatch..............................................139 Miscellaneous.............................................140 strblank..............................................140 strcode...............................................140 strsetsz..............................................141 struplow..............................................141 Hardware Level Functions..........................................142 Information Subsystem.........................................142 Library Information.......................................142 TcxlInit..............................................142 TcxlTerm..............................................142 TcxlVer...............................................143 Hardware Information......................................143 _BioEqp...............................................143 BiosVer...............................................144 ClockCal..............................................144 MachId................................................145 HdwFlg................................................145 HdwGam................................................146 gameport..............................................146 HdwNdp................................................146 mathchip..............................................146 HdwMou................................................146 HdwMdm................................................147 HdwC40................................................147 HdwC80................................................147 HdwM80................................................148 HdwDrv................................................148 numflop...............................................148 HdwPar................................................148 numpar................................................148 HdwSer................................................149 numser................................................149 Utility Routines..........................................149 Beep..................................................149 RandFile..............................................149 Sound.................................................150 SysDate...............................................150 SysTime...............................................151 TabNxt................................................151 _Delay................................................152 _StdOut...............................................152 _StdOutS..............................................152 _Timer................................................153 _WaitMs...............................................153 Memory Subsystem..............................................154 MemInit...............................................154 MemTerm...............................................154 Page viii TesSeRact CXL V5.5 Documentation Expanded Memory Routines..................................154 EMSalloc..............................................154 EMSfree...............................................155 EMSgetnam.............................................155 EMScount..............................................155 EMSpages..............................................156 EMSmap................................................156 EMSquery..............................................156 EMSrest...............................................157 EMSsave...............................................157 EMSsetnam.............................................157 EMSstat...............................................158 Extended Memory Routines..................................158 XMSalloc..............................................158 XMScopy...............................................158 XMSfree...............................................159 XMSavail..............................................159 XMSquery..............................................159 XMSlock...............................................160 XMSrealloc............................................160 XMSunlock.............................................160 _A20_LD...............................................161 _A20_LE...............................................161 _A20chk...............................................161 _A20dis...............................................161 _A20ena...............................................161 UMBalloc..............................................161 UMBfree...............................................162 HMAalloc..............................................162 HMAfree...............................................162 Printer Subsystem.............................................163 _LPputC...............................................163 lcrlf.................................................163 lprintc...............................................163 lprintf...............................................163 lprintn...............................................164 lprintns..............................................164 lprints...............................................164 lprintsb..............................................164 lprintsu..............................................165 scrndump..............................................165 windump...............................................165 OpSys Subsystem...............................................165 _ChgDir...............................................165 _ChgDrv...............................................166 _FndFst...............................................166 _FndNxt...............................................166 _GetDir...............................................167 _GetDrv...............................................167 _InpByt...............................................167 _InpWrd...............................................168 _IntDis...............................................168 _IntEna...............................................168 _OutByt...............................................169 _OutWrd...............................................169 TesSeRact CXL V5.5 Documentation Page ix Bottom Level Functions............................................170 Video Access Subsystem........................................170 Direct Hardware Access....................................170 VidOfs................................................170 VgetDvb...............................................170 VisaEga...............................................170 VisaPs2...............................................171 VsetChr...............................................171 Ultravision Support.......................................172 _VuvDis...............................................172 _VuvEna...............................................172 _VuvGet...............................................172 _VuvSet...............................................173 _VuvVal...............................................173 Internal Hardware Calls...................................173 _VgetN................................................173 _VgetN_...............................................173 _VgetS................................................174 _VgetS_...............................................174 _VgetW................................................174 _VgetW_...............................................174 _VgetX................................................174 _VgetX_...............................................174 _VputA................................................174 _VputA_...............................................174 _VputB................................................175 _VputB_...............................................175 _VputC................................................175 _VputC_...............................................175 _VputN................................................175 _VputN_...............................................175 _VputS................................................175 _VputS_...............................................175 _VputW................................................176 _VputW_...............................................176 _VputX................................................176 _VputX_...............................................176 Keyboard Access Subsystem.....................................176 KscnCod...............................................176 KcapOff...............................................176 KcapOn................................................177 KextOff...............................................177 KextOn................................................177 KinsOff...............................................177 KinsOn................................................177 KnumOff...............................................178 KnumOn................................................178 _KeyExt...............................................178 _KeyGet...............................................178 _KeyHit...............................................179 _KeySet...............................................179 _KeySta...............................................179 KqueChk...............................................180 KqueClr...............................................180 KqueGet...............................................180 KquePut...............................................181 KqueStr...............................................181 Page x TesSeRact CXL V5.5 Documentation Mouse Access Subsystem........................................182 MSclear...............................................182 MScurs................................................183 MSgoto................................................184 MShide................................................184 MShome................................................184 MSinit................................................184 MSkeys................................................185 MSlimit...............................................185 MSmove................................................185 MSpop.................................................186 MSpress...............................................186 MSpush................................................186 MSreles...............................................187 MSshow................................................187 MSspeed...............................................187 MSstat................................................188 MSterm................................................188 MSupdat...............................................188 _MSget................................................189 _MSpos................................................189 _MSset................................................189 _MSsho................................................190 Internal Level Functions..........................................190 Conversion Subsystem..........................................190 cvtcf.................................................190 cvtci.................................................190 cvtfc.................................................191 cvtic.................................................191 touplow...............................................191 Format Control Subsystem......................................192 FmtBack...............................................192 FmtChar...............................................192 FmtExcl...............................................192 FmtFlip...............................................193 FmtIncl...............................................193 FmtInit...............................................193 FmtPutF...............................................194 Near/Far Subsystem............................................194 MK_FP.................................................194 MK_FPT................................................194 _FarCpy...............................................195 _CpyFar...............................................195 _FarGet...............................................195 _GetFar...............................................195 _FarPut...............................................196 _PutFar...............................................196 TesSeRact CXL V5.5 Documentation Page xi Preliminary Notes & Comments Because of the massive size of this reference, we are not providing examples for functions that are well-documented in the TCXLDEMO.C program, provided with this package. Adding examples for each function could easily expand the size of this manual to more than 200 pages, making it virtually useless as an evaluation tool. Examples are, therefore, listed as line references within TCXLDEMO.C, and in the various source code files. In addition, cross-reference items have, for the most part, been eliminated for functions in the same group; i.e, all the functions under "Menu Item Manipulation" can be assumed to have "see also references" to each other. We will, however, provide cross-reference material between functions that have similar functionality or uses, when they cross the boundaries between groups, systems, or subsystems. The various Appendixes, referenced in this document, are packaged with the Quick Reference Guide, as TCXL-QCK.TXT on diskette, and printed separately. --------------------------------------------------------------------------- TesSeRact CXL V5.5 Documentation Page 1 Page 1 TesSeRact CXL V5.5 Documentation User Level Functions Menu System Menu Item Manipulation --------------------------------------------------------------------------- NAME.........ItmCur Macro DESCRIPTION Returns the address of the current menu item's record. After this call, you may access any of the item's elements. This function would most likely be called from a "select", "before", or "after" function. PROTOTYPE....IdfP ItmCur(NOARG); #define ItmCur() (MdfCur(MctlCur)) ARGUMENTS....None RETURNS The address of the current menu item's record. SEE ALSO IdfP (See User's Guide) MnuCur (Page 11) FldCur (Page 19) HlpCur (Page 25) EXAMPLE FILE: TCXLDEMO.C.........Line: 2128, 2396, 2421, 2425, 2589 Page 2 TesSeRact CXL V5.5 Documentation --------------------------------------------------------------------------- NAME.........ItmDis DESCRIPTION This function disables a menu item by making it nonselectable. This function would most likely be called from a "select", "before", or "after" function. It will set a flag so that when the called function returns to the menu, the disabled menu item will be displayed in the text attribute (See Appendix A) defined for nonselectable text. Please note that you may not disable the first menu item in the top menu in a program. This destroys the internal linked list of pointers used to build the menu system. PROTOTYPE....IntT CTYP ItmDis(TagT id); ARGUMENTS The Tag ID of the menu item RETURNS ERR_NUL - No Error ERR_ARG - Argument Failure TcxlErr Returns: W_NOMNUDEF - No Menu Defined W_NOTFOUND - Tag ID Not Found SEE ALSO ItmEna (Page 4) EXAMPLE FILE: TCXLDEMO.C.........Line: 2558, 2564 --------------------------------------------------------------------------- NAME.........ItmDsp DESCRIPTION This function sets the redisplay flag for a menu item. Normally, this would be needed if you have changed the text, etc. PROTOTYPE....IntT CTYP ItmDsp(TagT id); ARGUMENTS The Tag ID of the menu item RETURNS ERR_NUL - No Error ERR_ARG - Argument Failure TcxlErr Returns: W_NOMNUDEF - No Menu Defined W_NOTFOUND - Tag ID Not Found EXAMPLE FILE: TCXLDEMO.C.........Line: 2425, 2593 TesSeRact CXL V5.5 Documentation Page 3 --------------------------------------------------------------------------- NAME.........ItmEna DESCRIPTION This function enables a menu item by making it selectable. This function would most likely be called from a "select", "before", or "after" function. It will set a flag so that when the called function returns to the menu, the enabled menu item will be displayed in the text attribute (See Appendix A) defined for selectable text. PROTOTYPE....IntT CTYP ItmEna(TagT id); ARGUMENTS The Tag ID of the menu item RETURNS ERR_NUL - No Error ERR_ARG - Argument Failure TcxlErr Returns: W_NOMNUDEF - No Menu Defined W_NOTFOUND - Tag ID Not Found SEE ALSO ItmDis (Page 3) EXAMPLE FILE: TCXLDEMO.C.........Line: 2557, 2565 Page 4 TesSeRact CXL V5.5 Documentation --------------------------------------------------------------------------- NAME.........ItmFun DESCRIPTION Assigns "before" and "after" function pointers to the menu item just defined. The call to this function must appear immediately after the call to the MnuItm() to which it relates. During the processing of the menu, when the user moves to the item, the before function gets called. When the user leaves the item, the after function gets called. This powerful feature allows you to do some advanced stuff with menus, but must be used very carefully. One possible use of ItmFun() is to define a before function that opens a window and writes some text in it, and an after function which closes that window. When the user moved to that menu item, the window would open up and display text, then when the user left that menu item, the window would automatically close. PROTOTYPE....IntT CTYP ItmFun(VFvCP bf, VFvCP af); ARGUMENTS bf - Before Function (NULL if not used) af - After Function (NULL if not used) RETURNS ERR_NUL - No Error ERR_ARG - Argument Failure TcxlErr Returns: W_NOITMDEF - No Menu Items Defined SEE ALSO FldFun (Page 20) WsetFun (Page 44) MnuItm (Page 13) EXAMPLE FILE: TCXLDEMO.C.........Line: 914, 953 TesSeRact CXL V5.5 Documentation Page 5 --------------------------------------------------------------------------- NAME.........ItmGet DESCRIPTION This function returns a pointer to the text referenced by the specified Tag. PROTOTYPE....ChrP CTYP ItmGet(TagT id); ARGUMENTS The text of the menu item RETURNS ERR_NUL - No Error ERR_ARG - Argument Failure TcxlErr Returns: W_NOMNUDEF - No Menu Defined W_NOTFOUND - Tag ID Not Found EXAMPLE FILE: TCXLDEMO.C.........Line: 2590 --------------------------------------------------------------------------- NAME.........ItmKey DESCRIPTION This function returns a pointer to the Item Definition by searching for the passed hotkey. PROTOTYPE....IdfP CTYP ItmKey(KeyT kc); ARGUMENTS kc - hotkey to search for RETURNS The address of the item referenced NULL if not found SEE ALSO IdfP (See User's Guide) ItmLoc (Page 7) FldKey (Page 21) EXAMPLE FILE: INP\KEYGETC.C......Line: 113 Page 6 TesSeRact CXL V5.5 Documentation --------------------------------------------------------------------------- NAME.........ItmLoc DESCRIPTION This function returns a pointer to the Item Definition referenced by the passed Tag PROTOTYPE....IdfP CTYP ItmLoc(TagT id); ARGUMENTS The Tag ID of the menu item RETURNS The address of the item referenced NULL if not found SEE ALSO IdfP (See User's Guide) ItmKey (Page 6) FldLoc (Page 22) WinLoc (Page 38) EXAMPLE FILE: MNU\ITMDIS.C.......Line: 26 FILE: MNU\ITMDSP.C.......Line: 23 FILE: MNU\ITMENA.C.......Line: 26 FILE: MNU\ITMGET.C.......Line: 23 FILE: MNU\ITMNXT.C.......Line: 21 FILE: MNU\ITMSET.C.......Line: 26 FILE: MNU\MNUSHOW.C......Line: 108, 222 --------------------------------------------------------------------------- NAME.........ItmNxt DESCRIPTION Defines which menu item the selection bar will move to next. This function would most likely be called from a "select", "before", or "after" function. The selection bar does not actually move until the called function returns to the menu. PROTOTYPE....IntT CTYP ItmNxt(TagT id); ARGUMENTS The Tag ID of the menu item RETURNS ERR_NUL - No Error ERR_ARG - Argument Failure TcxlErr Returns: W_NOMNUDEF - No Menu Defined W_NOTFOUND - Tag ID Not Found EXAMPLE FILE: TCXLDEMO.C.........Line: 2128, 2559, 2566 TesSeRact CXL V5.5 Documentation Page 7 --------------------------------------------------------------------------- NAME.........ItmSet DESCRIPTION This function changes the text associated with the specified menu item, referenced by the passed Tag. PROTOTYPE....IntT CTYP ItmSet(TagT id, ChrP tp); ARGUMENTS id - The Tag ID of the menu item tp - Pointer to the new text RETURNS ERR_NUL - No Error ERR_ARG - Argument Failure TcxlErr Returns: W_NOMNUDEF - No Menu Defined W_NOTFOUND - Tag ID Not Found --------------------------------------------------------------------------- NAME.........ItmTxt DESCRIPTION Adds a text description to a menu item. You can use this function to create Lotus-style menus where the text descriptions are displayed underneath the menu and change each time the user moves to a new menu item. PROTOTYPE....IntT CTYP ItmTxt(IntT wr, IntT wc, IntT at, ChrP ps); ARGUMENTS wr - Window Row wc - Window Column at - Attribute (See Appendix A) ps - string to display RETURNS ERR_NUL - No Error ERR_ARG - Argument Failure TcxlErr Returns: W_NOMNUDEF - No Menu Defined W_NOTFOUND - Tag ID Not Found SEE ALSO MnuItm (Page 13) EXAMPLE FILE: TCXLDEMO.C.........Line: 2286, 2288, 2290, 2292, 2294, 2296 Page 8 TesSeRact CXL V5.5 Documentation --------------------------------------------------------------------------- Menu Definition and Access --------------------------------------------------------------------------- NAME.........MnuAct DESCRIPTION Starts a menu/sub-menu definition. This is used in place of MnuBeg(). This function differs from MnuBeg() in that when the user processes the defined menu, the menu will assume whatever the active window is at the time. PROTOTYPE....IntT CTYP MnuAct(NOARG); ARGUMENTS....None RETURNS ERR_NUL - No Error ERR_ARG - Argument Failure ERR_MEM - Memory Allocation Failure TcxlErr Returns: W_NOITMDEF - No Menu Items Defined SEE ALSO MnuBeg (Page 10) EntDef (Page 15) EXAMPLE FILE: HLP\HLPSHOW.C......Line: 278 TesSeRact CXL V5.5 Documentation Page 9 --------------------------------------------------------------------------- NAME.........MnuBeg DESCRIPTION Starts a menu/sub-menu definition and describes the window which the menu will reside in. This does not actually open any windows or menus, just defines them. This must be used in conjuction with MnuItm() and MnuEnd(). This is one of the 4 functions that are required to process a menu. PROTOTYPE....IntT CTYP MnuBeg(IntT sr, IntT sc, IntT er, IntT ec, IntT bt, IntT ba, IntT wa, VfvCP fo); ARGUMENTS sr - Start row of menu's window sc - Start column of menu's window er - End row of menu's window ec - End column of menu's window bt - Border Type (See Appendix C [Border Types]) ba - Border Attribute (See Appendix A) wa - Window Attribute (See Appendix A) fo - Function to be called when the menu's window is opened. An example would be to add a title, a shadow, etc. RETURNS ERR_NUL - No Error ERR_ARG - Argument Failure ERR_MEM - Memory Allocation Failure TcxlErr Returns: W_NOITMDEF - No Menu Items Defined SEE ALSO VidWid, VidDep (See User's Guide) EXAMPLE FILE: MNU\MNUACT.C.......Line: 23 FILE: TCXLDEMO.C.........Line: 863, 904, 909, 920, 930, 943, 954, 2258, 2284 Page 10 TesSeRact CXL V5.5 Documentation --------------------------------------------------------------------------- NAME.........MnuCur Macro DESCRIPTION Returns the address of the currently active menu's record. After this call, you may access any of the menu's elements. Use caution when updating elements in the menu's record. This function should only be called while the menu to which it relates is being processed. PROTOTYPE....MdfP MnuCur(NOARG); #define MnuCur() (MctlCur) ARGUMENTS....None RETURNS The address of the current menu's record. SEE ALSO MdfP (See User's Guide) ItmCur (Page 2) FldCur (Page 19) HlpCur (Page 25) TesSeRact CXL V5.5 Documentation Page 11 --------------------------------------------------------------------------- NAME.........MnuEnd DESCRIPTION Ends a menu/sub-menu definition and defines specific features/attributes of that menu. This is one of the 4 functions that are required to process a menu. PROTOTYPE....IntT CTYP MnuEnd(TagT ti, IntT mt, IntT bw, IntT tp, IntT ta, IntT sa, IntT na, IntT ba); ARGUMENTS ti - Tag ID of the item the selaction bar will start with mt - A mask which describes the menu style (See Appendix C [Menu Types]) bw - Width of the section bar (zero means selection string width) tp - Offset position from start of the selection bar that the menu item text will start. ta - Attribute for menu text (See Appendix A) sa - Attribute for Selection Character (See Appendix A) na - Attribute for non-selectable text (See Appendix A) ba - Attribute for the selection bar (See Appendix A) RETURNS ERR_NUL - No Error ERR_ARG - Argument Failure ERR_MEM - Memory Allocation Failure TcxlErr Returns: W_NOITMDEF - No Menu Items Defined W_INVTAGID - The specified Tag ID was invalid. It must match one of the Tag IDs in the current menu. EXAMPLE FILE: HLP\HLPSHOW.C......Line: 188 FILE: TCXLDEMO.C.........Line: 871, 915, 925, 935, 948, 957, 960, 2261, 2297 Page 12 TesSeRact CXL V5.5 Documentation --------------------------------------------------------------------------- NAME.........MnuItm DESCRIPTION Defines a menu item. This is one of the 4 functions that are required to process a menu. PROTOTYPE....IntT CTYP MnuItm(IntT wr, IntT wc, ChrP ps, IntT sc, TagT id, IntT fm, VfvCP sf, WrdT hk, TagT he); ARGUMENTS wr - Window Row wc - Window Column ps - Menu Item String sc - Quick Selection character. This is often the first letter of the menu item. id - unique tag identifier for this menu item fm - Feature Mask (See Appendix C [Menu Feature Masks]) sf - Function to call when item is selected hk - Keycode of the key which will select this item from anywhere within the menu structure. This allows the user to call this menu's select function even if not currently processing its menu. he - Help Tag for this item RETURNS ERR_NUL - No Error ERR_ARG - Argument Failure ERR_MEM - Memory Allocation Failure TcxlErr Returns: W_NOMNUBEG - No Begin Of Menu Specified. See MnuBeg() SEE ALSO ItmFun (Page 5) ItmTxt (Page 8) EXAMPLE FILE: HLP\HLPSHOW.C......Line: 291 FILE: TCXLDEMO.C.........Line: 628, 867, 907, 911, 918, 922, 928, 932, 938, 941, 945, 951, 955, 956, 2260, 2285, 2287, 2289, 2291, 2293, 2295 TesSeRact CXL V5.5 Documentation Page 13 --------------------------------------------------------------------------- NAME.........MnuShow DESCRIPTION Processes the defined menu structure. The user is allowed to move a selection bar around to the various menu items. If mouse support is on, then the user can use the mouse for selecting as well. If sub-menus exists, then the user can select those also. Escape checking is provided for when the user is in the root menu, however if the user is in a sub-menu, pressing [Esc] will always return to the next level up. This is one of the 4 functions that are required to process a menu. PROTOTYPE....IntT MnuShow(NOARG); ARGUMENTS....None RETURNS The Tag ID of the menu item that was selected. ERR_NUL - Check TcxlErr for W_ESCPRESS! ERR_ARG - Argument Failure ERR_MEM - Memory Allocation Failure TcxlErr Returns: W_NOMNUDEF - No Menu Defined W_NOMNUEND - No End Of Menu Specified. See MnuEnd(). W_ESCPRESS - The [Esc] Key Was Pressed From The Root Menu W_INVCOORD - Invalid Coordinates W_INVBTYPE - Invalid Border Type SEE ALSO EntShow (Page 18) HlpShow (Page 29) EXAMPLE FILE: HLP\HLPSHOW.C......Line: 190 FILE: TCXLDEMO.C.........Line: 873, 963, 2264, 2299 Page 14 TesSeRact CXL V5.5 Documentation --------------------------------------------------------------------------- Entry System Entry Form Manipulation --------------------------------------------------------------------------- NAME.........EntDef DESCRIPTION Marks the beginning of a data input form, and specifies text attributes to be used by the form. The Field Attribute is used to display the entry fields themselves, while the Text Attribute is used to display the required characters within the fields, that are not user-modifiable. PROTOTYPE....IntT CTYP EntDef(IntT fa, IntT ta); ARGUMENTS fa - Field Attribute (See Appendix A) ta - Text Attribute (See Appendix A) RETURNS ERR_NUL - No Error ERR_ARG - Argument Failure ERR_MEM - Memory Allocation Error TcxlErr Returns: W_NOACTIVE - No Active Window EXAMPLE FILE: TCXLDEMO.C.........Line: 1011, 1575, 1711, 2420 TesSeRact CXL V5.5 Documentation Page 15 --------------------------------------------------------------------------- NAME.........EntFld DESCRIPTION Defines a window input field. PROTOTYPE....IntT CTYP EntFld(IntT wr, IntT wc, ChrP ps, ChrP fs, IntT fm, TagT id, IntT md, IfcpCP vf, TagT ht); ARGUMENTS wr - Window Row for Start of Input wc - Window Column for Start of Input ps - String buffer to receive input fs - Field Format String (See Appendix E) fm - Feature Mask (See Appendix C [Field Feature Bits]) id - Tag Identifier for field md - Field Mode (See "_EntCtl" in the User's Guide) vf - Validate Function ht - Help Tag for this field RETURNS ERR_NUL - No Error ERR_ARG - Argument Failure ERR_MEM - Memory Allocation Error TcxlErr Returns: W_NOFRMBEG - No Begin Of Form Specified, see EntDef() W_INVCOORD - Invalid Coordinates W_INVFORMT - Invalid Format String EXAMPLE FILE: TCXLDEMO.C.........Line: 1016, 1576, 1712, 2421 Page 16 TesSeRact CXL V5.5 Documentation --------------------------------------------------------------------------- NAME.........EntKey DESCRIPTION Allows you to extend or modify the data entry keys used as the alternate get-key function so that during EntShow() processing you can get a key, test it, change it, or do whatever else you like with it before you return it to EntShow(). It also lets you specify a variable to receive the key that caused termination of the form. The call to EntKey() can be contained anywhere between EntDef() and EntShow(). PROTOTYPE....IntT CTYP EntKey(WfipCP gk, WrdP tk); ARGUMENTS gk - Alternate getkey() function tk - Pointer to location to store termination key RETURNS ERR_NUL - No Error ERR_ARG - Argument Failure TcxlErr Returns: W_NOACTIVE - No Active Form W_NOFRMBEG - No Begin Of Form Specified EXAMPLE FILE: TCXLDEMO.C.........Line: 1022 --------------------------------------------------------------------------- NAME.........EntSep DESCRIPTION This function declares a new "word separation" string. The TCXL library has a built-in definition of the characters that will mark the end of a "word": LCL ChrP sepstr = " ~`!@#$%^&*()-+=|\\[]{}:;'\",./<>?"; If your application requires a different separator string, you would call this function. PROTOTYPE....IntT CTYP EntSep(ChrP ws); ARGUMENTS ws - New separation string RETURNS ERR_NUL - No Error ERR_ARG - Argument Failure TcxlErr Returns: W_NOFRMBEG - No Form Defined EXAMPLE FILE: ENT\ENTDEF.C.......Line: 40 TesSeRact CXL V5.5 Documentation Page 17 --------------------------------------------------------------------------- NAME.........EntShow DESCRIPTION Marks the end of the defined input form and initiates processing of the defined input fields. The user is allowed to edit back and forth between the defined fields until the last field is entered. PROTOTYPE....IntT CTYP EntShow(NOARG); ARGUMENTS....None RETURNS ERR_NUL - Check TcxlErr for W_ESCPRESS! ERR_ARG - Argument Failure ERR_NUL - No Error TcxlErr Returns: W_NOACTIVE - No Active Window W_NOINPDEF - No Input Fields Defined SEE ALSO MnuShow (Page 14) HlpShow (Page 29) EXAMPLE FILE: TCXLDEMO.C.........Line: 1024, 1578, 1715, 2423 Page 18 TesSeRact CXL V5.5 Documentation --------------------------------------------------------------------------- Entry Field Manipulation --------------------------------------------------------------------------- NAME.........FldCur Macro DESCRIPTION Returns the address of the current input field's record. After the call to this function, you may access any of the current input field's elements. Use caution when updating elements in the field's record. This function should only be called while the input form to which it relates is being processed. Please use the macros defined in TCXLent.h when updating members of this structure -- while the structure may change in future versions, the macros will remain consistent. PROTOTYPE....FdfP FldCur(NOARG); #define FldCur() (EdfFld(_EntCtl)) ARGUMENTS....None RETURNS The address of the current input field's record SEE ALSO FdfP (See User's Guide) ItmCur (Page 2) MnuCur (Page 11) HlpCur (Page 25) EXAMPLE FILE: TCXLDEMO.C.........Line: 2274 TesSeRact CXL V5.5 Documentation Page 19 --------------------------------------------------------------------------- NAME.........FldFun DESCRIPTION Assigns "before" and "after" function pointers to the input field just defined. The call to this function must appear immediately after the call to the EntFld() to which it relates. During user input, when the user enters the field, the before function gets called. When the user leaves the validated field, the after function gets called. This powerful feature allows you to do some pretty advanced stuff with input fields, but must be used very carefully. PROTOTYPE....IntT CTYP FldFun(VfvCP bf, VfvCP af); ARGUMENTS bf - Before function af - After function RETURNS ERR_NUL - No Error ERR_ARG - Argument Failure TcxlErr Returns: W_NOACTIVE - No Active Window W_NOINPDEF - No Input Fields Defined SEE ALSO ItmFun (Page 5) WsetFun (Page 44) EntFld (Page 16) EXAMPLE FILE: TCXLDEMO.C.........Line: 1019 Page 20 TesSeRact CXL V5.5 Documentation --------------------------------------------------------------------------- NAME.........FldKey DESCRIPTION This function assigns a "hot key" to the individual data entry field. The call to this function must appear immediately after the call to the EntFld() to which it relates. During user input, when the user enters the field, the before function gets called. PROTOTYPE....IntT CTYP FldKey(KeyT hk); ARGUMENTS hk - Hotkey for field RETURNS ERR_NUL - No Error ERR_ARG - Argument Failure TcxlErr Returns: W_NOACTIVE - No Active Window W_NOINPDEF - No Input Fields Defined SEE ALSO ItmKey (Page 6) EntFld (Page 16) EXAMPLE FILE: TCXLDEMO.C.........Line: 1020 TesSeRact CXL V5.5 Documentation Page 21 --------------------------------------------------------------------------- NAME.........FldLoc DESCRIPTION Searches for a defined field using the tag ID of the field, then returns the address of the field's record. After the call to this function, you may access any of the found input field's elements. Use caution when updating elements in the field's record. This function should only be called during the processing of the input form to which it relates. Please use the macros defined in TCXLent.h when updating members of this structure -- while the structure may change in future versions, the macros will remain consistent. PROTOTYPE....FdfP CTYP FldLoc(TagT id); ARGUMENTS id - Tag ID of the field to search for RETURNS The address of the current input field's record If an error occurs, then NULL is returned, and TcxlErr will return: W_NOACTIVE - No Active Window W_NOFRMDEF - No Form Defined W_NOTFOUND - No Defined Field Matches specified Tag SEE ALSO FdFp (See User's Guide) ItmLoc (Page 7) WinLoc (Page 38) EXAMPLE FILE: TCXLDEMO.C.........Line: 1641 Page 22 TesSeRact CXL V5.5 Documentation --------------------------------------------------------------------------- Internal Entry Routines --------------------------------------------------------------------------- NAME........._FldDsp <_TcxlEnt.H> DESCRIPTION Display a data-entry field. PROTOTYPE....VOID CTYP _FldDsp(ChrP s, IntT h); ARGUMENTS s - String to Display h - Attribute Flag --------------------------------------------------------------------------- NAME........._FldDecL <_TcxlEnt.H> DESCRIPTION Space fill left of decimal point, right justfy against decimal point. PROTOTYPE....VOID CTYP _FldDecL(ChrP s); ARGUMENTS s - String to Adjust --------------------------------------------------------------------------- NAME........._FldDecR <_TcxlEnt.H> DESCRIPTION Space fill right of decimal point, left justfy against decimal point. PROTOTYPE....VOID CTYP _FldDecR(ChrP s); ARGUMENTS s - String to Adjust TesSeRact CXL V5.5 Documentation Page 23 --------------------------------------------------------------------------- Help System --------------------------------------------------------------------------- NAME.........HlpAdd DESCRIPTION Adds the current help category to the help category stack, then sets the current help category to the specified help category. It's effectively the same as doing a HlpCur() followed by a HlpSet(). PROTOTYPE....IntT CTYP HlpAdd(TagT ht); ARGUMENTS ht - Help Tag-ID RETURNS ERR_NUL - No Error ERR_ARG - Argument Failure TcxlErr Returns: W_NOHLPDEF - No Help Record Defined W_HLPSTKOV - Help Stack Overflow (Stack Full) --------------------------------------------------------------------------- NAME.........HlpClr DESCRIPTION Clears the help category stack. PROTOTYPE....IntT CTYP HlpClr(NOARG); ARGUMENTS....None RETURNS ERR_NUL - No Error ERR_ARG - Argument Failure TcxlErr Returns: W_NOHLPDEF - No Help Defined EXAMPLE FILE: HLP\HLPOFF.C.......Line: 29 Page 24 TesSeRact CXL V5.5 Documentation --------------------------------------------------------------------------- NAME.........HlpCur Macro DESCRIPTION Pushes the current help category onto the help category stack. The default stack can hold up to 20 help categories. PROTOTYPE....IntT HlpCur(NOARG); #define HlpCur() (HlpPush(WctlHlp)) ARGUMENTS....None RETURNS ERR_NUL - No Error ERR_ARG - Argument Failure TcxlErr Returns: W_NOHLPDEF - no defined help. See whelpdef(). W_HLPSTKOV - help stack overflow (stack full). SEE ALSO ItmCur (Page 2) MnuCur (Page 11) FldCur (Page 19) EXAMPLE FILE: MNU\MNUSHOW.C......Line: 187, 687 FILE: ENT\ENTSHOW.C......Line: 774 FILE: HLP\HLPADD.C.......Line: 21 FILE: TCXLDEMO.C.........Line: 2256 TesSeRact CXL V5.5 Documentation Page 25 --------------------------------------------------------------------------- NAME.........HlpDef DESCRIPTION Defines the help file, key, and window colors. After calling this function, anytime the help key is pressed, the help processor will search the help file for whatever the current help category is. PROTOTYPE....IntT CTYP HlpDef(ChrP fn, WrdT ky, IntT wa, IntT ta, IntT sa, IntT ba, VfvCP fo); ARGUMENTS fn - Filename for help file ky - Keycode of the help key wa - Help Window Attribute (See Appendix A) ta - Help Text Attribute (See Appendix A) sa - Selection Text Attribute (See Appendix A) ba - Selection Bar Attribute (See Appendix A) fo - Function to call immediately upon opening the help window RETURNS ERR_NUL - No Error ERR_ARG - Argument Failure ERR_MEM - Memory Allocation Error TcxlErr Returns: W_NOHLPDEF - No Help File Name defined SEE ALSO MnuBeg (Page 10) EntDef (Page 15) EXAMPLE FILE: TCXLDEMO.C.........Line: 751 --------------------------------------------------------------------------- NAME.........HlpDrop DESCRIPTION Pops the help category off of the top of the stack and into the oid. The current help category is not affected. PROTOTYPE....IntT CTYP HlpDrop(NOARG); ARGUMENTS....None RETURNS ERR_NUL - No Error ERR_ARG - Argument Failure TcxlErr Returns: W_NOHLPDEF - No Defined Help W_HLPSTKUN - Help Stack Underflow (Stack Empty) EXAMPLE FILE: TCXLDEMO.C.........Line: 877, 984, 1055, 2300 Page 26 TesSeRact CXL V5.5 Documentation --------------------------------------------------------------------------- NAME.........HlpOff DESCRIPTION Disengages the help system. This un-defines the help key, clears the help stack, and frees any memory allocated by the help system. PROTOTYPE....IntT CTYP HlpOff(NOARG); ARGUMENTS....None RETURNS ERR_NUL - No Error ERR_ARG - Argument Failure TcxlErr Returns: W_NOHLPDEF - No Defined Help EXAMPLE FILE: HLP\HLPDEF.C.......Line: 49 --------------------------------------------------------------------------- NAME.........HlpPop DESCRIPTION Pops the help category off of the top of the stack and makes it the current help category. PROTOTYPE....IntT CTYP HlpPop(NOARG); ARGUMENTS....None RETURNS ERR_NUL - No Error ERR_ARG - Argument Failure TcxlErr Returns: W_NOHLPDEF - No Defined Help W_HLPSTKUN - Help Stack Underflow (Stack Empty) EXAMPLE FILE: MNU\MNUSHOW.C......Line: 191, 693 FILE: ENT\ENTSHOW.C......Line: 779 FILE: TCXLDEMO.C.........Line: 2275 TesSeRact CXL V5.5 Documentation Page 27 --------------------------------------------------------------------------- NAME.........HlpPush DESCRIPTION Pushes the specified help category onto the help category stack. The current help category is not affected. The default help stack can hold up to 20 help categories. PROTOTYPE....IntT CTYP HlpPush(TagT ct); ARGUMENTS ct - The help tag to push RETURNS ERR_NUL - No Error ERR_ARG - Argument Failure TcxlErr Returns: W_NOHLPDEF - No Defined Help W_HLPSTKUN - Help Stack Overflow (Stack Full) EXAMPLE FILE: TCXLDEMO.C.........Line: 861, 890, 1008, 2283 --------------------------------------------------------------------------- NAME.........HlpSet DESCRIPTION Sets the current help category. If a window is active at the time, it will also set that window's help category. The help category set by calling this function is what will be used by the help processor for searching the help file for help text. PROTOTYPE....IntT CTYP HlpSet(TagT ct); ARGUMENTS ct - Help Category Tag RETURNS ERR_NUL - No Error ERR_ARG - Argument Failure TcxlErr Returns: W_NOHLPDEF - No Defined Help EXAMPLE FILE: HLP\HLPADD.C.......Line: 23 FILE: TCXLDEMO.C.........Line: 1078, 1083, 1093, 1163, 1263, 1285, 1305, 1396, 1752, 2141, 2435, 2464, 2508, 2535, 2633 Page 28 TesSeRact CXL V5.5 Documentation --------------------------------------------------------------------------- NAME.........HlpShow DESCRIPTION This function displays the help window, with the current window's Help Category as the specified help text. PROTOTYPE....VOID CTYP HlpShow(NOARG); ARGUMENTS....None RETURNS ERR_NUL - No Error ERR_ARG - Argument Failure TcxlErr Returns: W_NOHLPDEF - No Defined Help SEE ALSO MnuShow (Page 14) EntShow (Page 18) EXAMPLE FILE: HLP\HLPDEF.C.......Line: 53 --------------------------------------------------------------------------- NAME.........HlpWind DESCRIPTION Sets specific features to be used by the help window for when it opens. These are screen coordinates, border type, and whether or not to display a "Help" title on the upper window border. It does not actually open the help window. You can call HlpWind() anytime after calling HlpDef(). You can call HlpWind() as often as you like during your program. PROTOTYPE....IntT CTYP HlpWind(IntT sr, IntT sc, IntT er, IntT ec, IntT bt, IntT ti); ARGUMENTS sr - Start Row sc - Start Column er - End Row ec - End Column bt - Border Type (See Appendix C [Border Types]) ti - Display "Help" title on top border? (0=no, 1=yes) RETURNS ERR_NUL - No Error ERR_ARG - Argument Failure TcxlErr Returns: W_NOHLPDEF - No Defined Help SEE ALSO Wborder (Page 61) TesSeRact CXL V5.5 Documentation Page 29 --------------------------------------------------------------------------- Selection System --------------------------------------------------------------------------- NAME.........SelAttr DESCRIPTION This function will open a window and let the user interactively pick a text attribute (See Appendix A for a list of available attributes). PROTOTYPE....IntT CTYP SelAttr(IntT sr, IntT sc, IntT bt, IntT ba, IntT ab, VfvCP fo); ARGUMENTS sr - Start Row sc - Start Column bt - Border Type (See Appendix C [Border Types]) ba - Beginning Attribute (current default) ab - Allow Blink? fo - Function to call when window is opened RETURNS The new attribute EXAMPLE FILE: TCXLDEMO.C.........Line: 1096 Page 30 TesSeRact CXL V5.5 Documentation --------------------------------------------------------------------------- NAME.........SelFile DESCRIPTION This function will open up a window and display as many file/directory names in it as it can. The user can use a selection bar to move through the file/directory names and select one. If all of the file/directory names cannot fit in the window, scrolling and paging is allowed. If the user selects a directory, SelFile() will change to that directory and display the list of files/directories in it. After the selection is made, SelFile() will return the complete path name of the selected file. PROTOTYPE....ChrP CTYP SelFile(IntT sr, IntT sc, IntT er, IntT ec, IntT bt, IntT ba, IntT wa, IntT sa, IntT ti, ChrP fs, VfvCP fo); ARGUMENTS sr - Start Row sc - Start Column er - End Row ec - End Column bt - Border Type (See Appendix C [Border Types]) ba - Border Attribute (See Appendix A) wa - Window Attribute (See Appendix A) sa - Selection Bar Attribute (See Appendix A) ti - Display Filespec Title On Upper Border? (0=no, 1=yes) fs - Filespec to match (ie, "*.*") fo - Function to call when window is opened RETURNS The address of the static string containing the full drive:path\filename string of the selected file. If an error occurred, NULL will be returned and TcxlErr will be set to one of the following: W_ESCPRESS - The [Esc] Key Was Pressed W_ALLOCERR - Memory Allocation Error W_DOSERROR - DOS Error (ie. Invalid Directory) W_INVCOORD - Invalid Window Coordinates W_INVBTYPE - Invalid Border Type W_STRLONG - Window Not Wide Enough To Hold Largest File Name W_NOMATCH - No Files Matched Input Filespec W_INVPATH - Invalid Path Or Path Not Found EXAMPLE FILE: TCXLDEMO.C.........Line: 1084 TesSeRact CXL V5.5 Documentation Page 31 --------------------------------------------------------------------------- NAME.........SelStr DESCRIPTION This function will open up a window and display as many of the input strings in it as it can. The user can use a selection bar to move through the strings and select one. If all of the strings cannot fit in the window, scrolling and paging is allowed. After the selection is made, SelStr() will return the array subsript of the string that was selected. PROTOTYPE....IntT CTYP SelStr(IntT sr, IntT sc, IntT er, IntT ec, IntT bt, IntT ba, IntT wa, IntT sa, ChrP as[], IntT ie, VfvCPfo); ARGUMENTS sr - Start Row sc - Start Column er - End Row ec - End Column bt - Border Type (See Appendix C [Border Types]) ba - Border Attribute (See Appendix A) wa - Window Attribute (See Appendix A) sa - Selection Bar Attribute (See Appendix A) as - Base of array of string pointers ie - Initial Element to default to fo - Function to call when window is opened RETURNS The array subscript of the selected string. If an error occurred, then -1 (ERR_ARG) will be returned and TcxlErr will be set to one of the following: W_ESCPRESS - The [Esc] Key Was Pressed W_ALLOCERR - Memory Allocation Error W_INVCOORD - Invalid Window Coordinates W_INVBTYPE - Invalid Border Type W_STRLONG - Window Not Wide Enough To Hold Largest String W_INVPATH - Invalid Path Or Path Not Found EXAMPLE FILE: TCXLDEMO.C.........Line: 1079, 1204, 2052, 2065 Page 32 TesSeRact CXL V5.5 Documentation --------------------------------------------------------------------------- NAME.........SelTxt DESCRIPTION Allows user to select one string from an array of strings via an in-place "menu". This function is the same as SelStr(), except that it puts the selection menu in the current active window, instead of creating a separate window for the selection. PROTOTYPE....IntT CTYP SelTxt(IntT wr, IntT wc, IntT at, ChrP as[], IntT in); ARGUMENTS wr - Window Row to start selection wc - Window Column to start selection at - Attribute for selection text (See Appendix A) as - Base of array of string pointers ie - Initial Element to default to RETURNS The array subscript of the selected string. If an error occurred, then -1 (ERR_ARG) will be returned and TcxlErr will be set to one of the following: W_NOACTIVE - No Active Window W_ESCPRESS - The [Esc] Key Was Pressed W_STRLONG - Window Not Wide Enough To Hold Largest String EXAMPLE FILE: TCXLDEMO.C.........Line: 1090 TesSeRact CXL V5.5 Documentation Page 33 --------------------------------------------------------------------------- NAME........._Select DESCRIPTION This is the internal selection engine, called by SelFile(), SelStr() and SelTxt(). PROTOTYPE....IntT CTYP _Select(IntT sr, IntT sc, IntT er, IntT ec, IntT bt, IntT ba, IntT wa, IntT sa, ChrP as[], IntT ie, VfvCP fo); ARGUMENTS sr - Start Row sc - Start Column er - End Row ec - End Column bt - Border Type (See Appendix C [Border Types]) ba - Border Attribute (See Appendix A) wa - Window Attribute (See Appendix A) sa - Selection Bar Attribute (See Appendix A) as - Base of array of string pointers ie - Initial Element to default to fo - Function to call when window is opened RETURNS The array subscript of the selected string. If an error occurred, then -1 (ERR_ARG) will be returned and TcxlErr will be set to one of the following: W_ESCPRESS - The [Esc] Key Was Pressed W_ALLOCERR - Memory Allocation Error W_INVCOORD - Invalid Window Coordinates W_INVBTYPE - Invalid Border Type W_STRLONG - Window Not Wide Enough To Hold Largest String W_INVPATH - Invalid Path Or Path Not Found EXAMPLE FILE: SEL\SELFILE.C......Line: 137 FILE: SEL\SELSTR.C.......Line: 27 FILE: SEL\SELTXT.C.......Line: 32 Page 34 TesSeRact CXL V5.5 Documentation --------------------------------------------------------------------------- Middle Level Functions Window System Error Handling --------------------------------------------------------------------------- NAME.........Wperror DESCRIPTION Opens an error window, displays an error message, sounds a beep, waits for a keypress, then returns to caller. The error window is opened in the general vicinity of the cursor position. PROTOTYPE....IntT CTYP Wperror(ChrP mp); ARGUMENTS mp - The message you want displayed in the error window RETURNS ERR_NUL - No Error ERR_ARG - Argument Failure TcxlErr Returns: W_STRLONG - error message string too long EXAMPLE FILE: TCXLDEMO.C.........Line: 1354, 1359, 2060, 2393, 2400, 2408 --------------------------------------------------------------------------- NAME.........WerrMsg DESCRIPTION This function, reads the global error value stored in TcxlErr, and returns the literal error message that corresponds to it. This can be very useful in debugging programs that use TCXL's windowing functions. PROTOTYPE....ChrP CTYP WerrMsg(NOARG); ARGUMENTS....None RETURNS A pointer to the error message associated with the current value of TcxlErr(). EXAMPLE FILE: TCXLDEMO.C.........Line: 2630 TesSeRact CXL V5.5 Documentation Page 35 --------------------------------------------------------------------------- NAME.........Werror DESCRIPTION This function terminates your application with a fatal error message, based on the value of TcxlErr(). The video system is restored, the screen is cleared, and the error message is set to the Standard Error device (StdErr). PROTOTYPE....VOID CTYP Werror(NOARG); ARGUMENTS....None RETURNS......None EXAMPLE FILE: TCXLDEMO.C.........Line: 1689 --------------------------------------------------------------------------- General Window Manipulation --------------------------------------------------------------------------- NAME.........Wactiv DESCRIPTION Activates a previously opened window, bringing it "in front" of all the others. Many windowing functions can perform their operations only on the active window. If a window is not active, you will need to activate it before you can use it for these functions. PROTOTYPE....IntT CTYP Wactiv(WndT wh); ARGUMENTS wh - Window Handle RETURNS ERR_NUL - No Error, or Window Already Active ERR_ARG - Argument Failure TcxlErr Returns: W_NOTFOUND - Window Handle Not Found W_NOACTIVE - No Open Windows EXAMPLE FILE: MNU\MNUSHOW.C......Line: 363, 691 FILE: TCXLDEMO.C.........Line: 1272, 2375 Page 36 TesSeRact CXL V5.5 Documentation --------------------------------------------------------------------------- NAME.........WcloseAll DESCRIPTION Closes all open windows. PROTOTYPE....IntT CTYP WcloseAll(NOARG); ARGUMENTS....None RETURNS ERR_NUL - No Error ERR_ARG - Argument Failure TcxlErr Returns: W_NOACTIVE - No Active Window SEE ALSO Wclose (Page 48) --------------------------------------------------------------------------- NAME.........Windowat DESCRIPTION Returns the handle of the window at given screen row, column coordinates. PROTOTYPE....WndT CTYP Windowat(IntT sr, IntT sc); ARGUMENTS sr - Screen Row sc - Screen Column RETURNS The window handle of the window at the given coordinates. ERR_NUL - Check TcxlErr for Error Code! ERR_ARG - Argument Failure TcxlErr Returns: W_NOTFOUND - no window found at given screen coordinates TesSeRact CXL V5.5 Documentation Page 37 --------------------------------------------------------------------------- NAME.........WinLoc DESCRIPTION Finds the address of a window record using the specified window handle. This is used internally be several TCXL functions. PROTOTYPE....WdfP CTYP WinLoc(WndT wh); ARGUMENTS wh - Window Handle RETURNS The address of the window control structure, or NULL if no record was found. SEE ALSO Wdfp (See User's Guide) FldLoc (Page 22) ItmLoc (Page 7) EXAMPLE FILE: WIN\WACTIV.C.......Line: 41 FILE: WIN\WUNHIDE.C......Line: 36 FILE: WIN\WUNLINK.C......Line: 28 FILE: WIN\WWPRINTS.C.....Line: 42 --------------------------------------------------------------------------- NAME.........Wisactiv Macro DESCRIPTION Determines if the specified window is active. PROTOTYPE....IntT Wisactiv(WndT a); #define Wisactiv(a) ((a) == WdfHdl(WctlAct)) ARGUMENTS a - Window Handle RETURNS TRUE if specified handle is active FALSE otherwise Page 38 TesSeRact CXL V5.5 Documentation --------------------------------------------------------------------------- NAME.........Wopen DESCRIPTION Opens a screen window and makes it active. The cursor location will be initialized to window row 0, column 0. The text attribute (See Appendix A) will be initialized to the same attribute as the window. You can open as many windows as memory permits. PROTOTYPE....WndT CTYP Wopen(IntT sr, IntT sc, IntT er, IntT ec, IntT bt, IntT ba, IntT wa); ARGUMENTS sr - Start Row sc - Start Column er - End Row ec - End Column bt - Border Type (See Appendix C [Border Types]) ba - Border Attribute (See Appendix A) wa - Window Attribute (See Appendix A) RETURNS The window handle of the new window, or: ERR_ARG - Argument Failure TcxlErr Returns: W_INVCOORD - Invalid Coordinates W_INVBTYPE - Invalid Border Type SEE ALSO Wpopup (Page 40) EXAMPLE FILE: MNU\MNUSHOW.C......Line: 79 FILE: HLP\HLPSHOW.C......Line: 84 FILE: SEL\SELATTR.C......Line: 32 FILE: SEL\_SELECT.C......Line: 98 FILE: WIN\WCOPY.C........Line: 38 FILE: WIN\WPERROR.C......Line: 43 FILE: WIN\WPOPUP.C.......Line: 35 FILE: TCXLDEMO.C.........Line: 805, 831, 1218, 1261, 1282, 1376, 1567, 1571, 1709, 2095, 2099, 2138, 2381, 2462, 2505, 2532, 2568 TesSeRact CXL V5.5 Documentation Page 39 --------------------------------------------------------------------------- NAME.........WpopUp DESCRIPTION This function, like Wopen(), opens a screen window and makes it active. However, this function will automatically center the window on the screen; horizontally, vertically, or both. This function will detect the screen size, based on the initialization parameters, and react accordingly. For consistency, the parameter list for WpopUp() is identical to Wopen() except for the addition of the flag byte. However, the start/end positions are used only for size determination. WpopUp() is identical to calling Wopen() followed by Wcenter(). PROTOTYPE....WndT CTYP WpopUp(IntT cf, IntT sr, IntT sc, IntT er, IntT ec, IntT bt, IntT ba, IntT wa); ARGUMENTS cf - Centering Flag (See Appendix C [Centering Flags]) sr - Start Row sc - Start Column er - End Row ec - End Column bt - Border Type (See Appendix C [Border Types]) ba - Border Attribute (See Appendix A) wa - Window Attribute (See Appendix A) RETURNS The window handle of the new window, or: ERR_ARG - Argument Failure TcxlErr Returns: W_INVCOORD - Invalid Coordinates W_INVBTYPE - Invalid Border Type SEE ALSO Wopen (Page 39) Wcenter (Page 47) EXAMPLE FILE: TCXLDEMO.C.........Line: 808, 836, 999, 1027, 1073, 1129, 1135, 1158, 1208, 1242, 1468 Page 40 TesSeRact CXL V5.5 Documentation --------------------------------------------------------------------------- NAME.........Wrestore DESCRIPTION Restores a previously saved region of the screen screen and frees the memory allocated by wsave(). PROTOTYPE....VOID CTYP Wrestore(VcelP wb); ARGUMENTS wb - Pointer to Window Buffer RETURNS......None SEE ALSO Wsave (Page 42) Vsave (Page 90) Vrestore (Page 90) EXAMPLE FILE: WIN\WCLOSE.C.......Line: 30 FILE: WIN\WCOPY.C........Line: 44 FILE: WIN\WDRAG.C........Line: 72 FILE: WIN\WHIDE.C........Line: 39 FILE: WIN\WMOVE.C........Line: 38, 49 FILE: WIN\WUNHIDE.C......Line: 44 TesSeRact CXL V5.5 Documentation Page 41 --------------------------------------------------------------------------- NAME.........Wsave DESCRIPTION Saves a region of the screen and allocates memory to hold the buffer. PROTOTYPE....VcelP CTYP Wsave(IntT sr, IntT sc, IntT er, IntT ec); ARGUMENTS sr - Start Row sc - Start Column er - End Row ec - End Column RETURNS Address of newly-created window buffer, or NULL if not enough memory. SEE ALSO Wrestore (Page 41) Vsave (Page 90) Vrestore (Page 90) EXAMPLE FILE: WIN\WCOPY.C........Line: 30 FILE: WIN\WDRAG.C........Line: 61, 64 FILE: WIN\WHIDE.C........Line: 29 FILE: WIN\WMOVE.C........Line: 35, 42 FILE: WIN\WOPEN.C........Line: 58 FILE: WIN\WUNHIDE.C......Line: 41 Page 42 TesSeRact CXL V5.5 Documentation --------------------------------------------------------------------------- NAME.........WsetEsc Macro DESCRIPTION Sets the Escape checking status for window keyboard input functions that utilize Escape checking. By default, Escape checking is on. When the user presses [Esc] while Escape checking is off, the keypress will be ignored. The exception to this is when inside a context-sensitive help screen or when inside a sub-menu of a multi-level menu system. PROTOTYPE....VOID WsetEsc(IntT a); #define WsetEsc(a) (WctlEsc = (a)) ARGUMENTS a - 0 means turn Esc Checking off, 1 means turn it on. RETURNS......None --------------------------------------------------------------------------- NAME.........WsetFil Macro DESCRIPTION Specifies which character the windowing system will use for filling windows with. By default, it is a space (' '). PROTOTYPE....VOID WsetFil(Int a); #define WsetFil(a) (WctlFil = (a)) ARGUMENTS a - Character to use as fill char RETURNS......None EXAMPLE FILE: TCXLDEMO.C.........Line: 830 FILE: TCXLDEMO.C.........Line: 835 TesSeRact CXL V5.5 Documentation Page 43 --------------------------------------------------------------------------- NAME.........WsetFun DESCRIPTION This function sets an alternate routine to "fill" a window when it is opened. See the default Fill function, WfilBox(), for details on the prototype for this routine. PROTOTYPE....IntT CTYP WsetFun(VOID (CTYP *f)(WrdT, WrdT, IntT, IntT)); ARGUMENTS f - Replacement Fill Function RETURNS ERR_NUL - No Error ERR_ARG - Argument Failure TcxlErr Returns: W_NOACTIVE - No Active Window W_INVCOORD - Invalid Coordinates --------------------------------------------------------------------------- NAME.........WsetTab Macro DESCRIPTION Modifies the tab width to be used when displaying tabs in the active window via the window TTY output functions. The default tab width is 8. PROTOTYPE....VOID WsetTab(IntT a); #define WsetTab(a) (WctlTab = (((a) == 0) ? 1 : (a))) ARGUMENTS a - Tab Width (in columns) RETURNS......None Page 44 TesSeRact CXL V5.5 Documentation --------------------------------------------------------------------------- NAME.........WsetTxt DESCRIPTION Sets the current text attribute (See Appendix A) for the active window. The current text attribute is used by the window TTY output functions for displaying text inside the active window. PROTOTYPE....IntT CTYP WsetTxt(IntT a); ARGUMENTS a - Text Attribute (See Appendix A) RETURNS ERR_NUL - No Error ERR_ARG - Argument Failure TcxlErr Returns: W_NOACTIVE - No Active Window SEE ALSO Vattrib (Page 107) WchgAtr (Page 53) EXAMPLE FILE: MNU\MNUSHOW.C......Line: 398 FILE: HLP\HLPSHOW.C......Line: 106, 112, 167, 320 FILE: WIN\WPERROR.C......Line: 46 FILE: WIN\WPUTS.C........Line: 96, 99, 102, 105, 108, 111, 114, 117 FILE: TCXLDEMO.C.........Line: 1306, 1397, 1583, 1610, 1612, 1622, 1753, 2103, 2436, 2451 TesSeRact CXL V5.5 Documentation Page 45 --------------------------------------------------------------------------- NAME.........Wunhide DESCRIPTION Unhides a previously hidden window. The unhidden window becomes the active window. PROTOTYPE....IntT CTYP Wunhide(WndT wh); ARGUMENTS wh - Window Handle RETURNS ERR_NUL - No Error ERR_ARG - Argument Failure TcxlErr Returns: W_NOTFOUND - Window Handle Not Found W_NOHIDDEN - No Hidden Windows W_NOTHIDD - Window Not Hidden SEE ALSO Whide (Page 51) EXAMPLE FILE: TCXLDEMO.C.........Line: 1766 --------------------------------------------------------------------------- NAME.........Wunlink DESCRIPTION Releases all memory allocated by a window, then unlinks it from the window chain, making it no longer accessible. The screen is not changed in any way. If the passed window handle is zero, the current active window is unlinked. PROTOTYPE....IntT CTYP Wunlink(WndT wh); ARGUMENTS wh - Window Handle RETURNS ERR_NUL - No Error ERR_ARG - Argument Failure TcxlErr Returns: W_NOTFOUND - Input Window Handle Was Not Found Page 46 TesSeRact CXL V5.5 Documentation --------------------------------------------------------------------------- NAME.........Wwprints DESCRIPTION Prints a string to the specified window. The specified window can be active, hidden, or blocked. Control characters are not recognized. Cursor position is not updated. PROTOTYPE....IntT CTYP Wwprints(WndT wh, IntT wr, IntT wc, IntT at, ChrP ps); ARGUMENTS wh - Window Handle wr - Window Row wc - Window Column at - Text Attribute (See Appendix A) ps - String to display RETURNS ERR_NUL - No Error ERR_ARG - Argument Failure TcxlErr Returns: W_NOACTIVE - No Active Window W_NOTFOUND - Window Handle Not Found W_INVCOORD - Invalid Window Coordinates W_STRLONG - String Too Long (Not All Of String Was Displayed) --------------------------------------------------------------------------- Active Window Movement --------------------------------------------------------------------------- NAME.........Wcenter DESCRIPTION Centers the active window on the screen, horizontally, vertically, or both. PROTOTYPE....IntT CTYP Wcenter(IntT cf); ARGUMENTS cf - Centering Flag (See Appendix C [Centering Flags]) RETURNS ERR_NUL - No Error ERR_ARG - Argument Failure TcxlErr Returns: W_ALLOCERR - Memory Allocation Error W_NOACTIVE - No Active Window SEE ALSO Wopen (Page 39) Wpopup (Page 40) TesSeRact CXL V5.5 Documentation Page 47 --------------------------------------------------------------------------- NAME.........Wclose DESCRIPTION Closes the active window. If the window has a shadow, it will be closed as well. PROTOTYPE....IntT CTYP Wclose(NOARG); ARGUMENTS....None RETURNS ERR_NUL - No Error ERR_ARG - Argument Failure TcxlErr Returns: W_NOACTIVE - No Active Window SEE ALSO Wopen (Page 39) WcloseAll (Page 37) EXAMPLE FILE: MNU\MNUSHOW.C......Line: 362 FILE: HLP\HLPSHOW.C......Line: 138 FILE: SEL\SELATTR.C......Line: 60, 67 FILE: SEL\_SELECT.C......Line: 138, 246 FILE: WIN\WCLOSEAL.C.....Line: 25 FILE: WIN\WPERROR.C......Line: 51 FILE: TCXLDEMO.C.........Line: 967, 968, 1050, 1056, 1099, 1139, 1179, 1224, 1225, 1250, 1336, 1385, 1545, 1579, 1627, 1718, 2376, 2572 Page 48 TesSeRact CXL V5.5 Documentation --------------------------------------------------------------------------- NAME.........Wcopy DESCRIPTION Creates a new window duplicating the active window. The new window becomes the active window. PROTOTYPE....WndT CTYP Wcopy(IntT nr, IntT nc); ARGUMENTS nr - Start Row of duplicate window sc - Start Column of duplicate window RETURNS The window handle of the new window, or: ERR_ARG - Argument Failure TcxlErr Returns: W_INVCOORD - invalid coordinates SEE ALSO Wopen (Page 39) EXAMPLE FILE: TCXLDEMO.C.........Line: 1401, 1404 --------------------------------------------------------------------------- NAME.........Wdrag DESCRIPTION Smoothly drag active window one row/column in given direction. PROTOTYPE....IntT CTYP Wdrag(IntT df); ARGUMENTS df - Direction (See Appendix C [Direction Codes]) RETURNS ERR_NUL - No Error ERR_ARG - Argument Failure TcxlErr Returns: W_NOACTIVE - No Active Window W_ALLOCERR - Memory Allocation Error SEE ALSO Wslide (Page 52) Wmove (Page 51) EXAMPLE FILE: WIN\WSLIDE.C.......Line: 36, 39, 42, 45 TesSeRact CXL V5.5 Documentation Page 49 --------------------------------------------------------------------------- NAME.........Wdump DESCRIPTION Dumps the active window to the default printer (PRN). PROTOTYPE....IntT CTYP Wdump(NOARG); ARGUMENTS....None RETURNS ERR_NUL - No Error ERR_ARG - Argument Failure TcxlErr Returns: W_NOACTIVE - No Active Window SEE ALSO windump (Page 165) scrndump (Page 165) --------------------------------------------------------------------------- NAME.........Whandle DESCRIPTION Returns the window handle of the active window. PROTOTYPE....WndT CTYP Whandle(NOARG); ARGUMENTS....None RETURNS The handle of the active window, or zero if error; TcxlErr Returns: W_NOACTIVE - No Active Window SEE ALSO Wactiv (Page 36) Windowat (Page 37) WinLoc (Page 38) Wisactiv (Page 38) Page 50 TesSeRact CXL V5.5 Documentation --------------------------------------------------------------------------- NAME.........Whide DESCRIPTION Hides the active window. The next window becomes active. PROTOTYPE....IntT CTYP Whide(NOARG); ARGUMENTS....None RETURNS ERR_NUL - No Error ERR_ARG - Argument Failure TcxlErr Returns: W_ALLOCERR - Memory Allocation Error W_NOACTIVE - No Active Window SEE ALSO Wunhide (Page 46) EXAMPLE FILE: TCXLDEMO.C.........Line: 1760 --------------------------------------------------------------------------- NAME.........Wmove DESCRIPTION Moves the active window to a new location on the screen. PROTOTYPE....IntT CTYP Wmove(IntT sr, IntT sc); ARGUMENTS sr - New Start Row sc - New Start Column RETURNS ERR_NUL - No Error ERR_ARG - Argument Failure TcxlErr Returns: W_ALLOCERR - Memory Allocation Error W_NOACTIVE - No Active Window SEE ALSO Wslide (Page 52) Wdrag (Page 49) EXAMPLE FILE: WIN\WCENTER.C......Line: 29 FILE: TCXLDEMO.C.........Line: 2172 TesSeRact CXL V5.5 Documentation Page 51 --------------------------------------------------------------------------- NAME.........Wsize DESCRIPTION Adjusts the size of the active window by changing the screen coordinates of its lower-right corner. PROTOTYPE....IntT CTYP Wsize(IntT nr, IntT nc); ARGUMENTS nr - New Lower-Left Row nc - New Lower-Left Column RETURNS ERR_NUL - No Error ERR_ARG - Argument Failure TcxlErr Returns: W_ALLOCERR - Memory Allocation Error W_NOACTIVE - No Active Window W_INVCOORD - Invalid Coordinates EXAMPLE FILE: TCXLDEMO.C.........Line: 2496 --------------------------------------------------------------------------- NAME.........Wslide DESCRIPTION Smoothly slides active window to new screen position. PROTOTYPE....IntT CTYP Wslide(IntT sr, IntT sc); ARGUMENTS sr - New Start Row sc - New Start Column RETURNS ERR_NUL - No Error ERR_ARG - Argument Failure TcxlErr Returns: W_ALLOCERR - Memory Allocation Error W_NOACTIVE - No Active Window W_INVCOORD - Invalid Coordinates SEE ALSO Wdrag (Page 49) Wmove (Page 51) EXAMPLE FILE: TCXLDEMO.C.........Line: 2183 Page 52 TesSeRact CXL V5.5 Documentation --------------------------------------------------------------------------- Active Window Control --------------------------------------------------------------------------- NAME.........WchgAtr DESCRIPTION Changes the text attribute of the active window. All text within the window will be changed also. PROTOTYPE....IntT CTYP WchgAtr(IntT ba, IntT wa); ARGUMENTS ba - New Border Attribute (See Appendix A) wa - New Window Attribute (See Appendix A) RETURNS ERR_ARG - Argument Failure TcxlErr Returns: W_NOACTIVE - No Active Window SEE ALSO WsetTxt (Page 45) Vattrib (Page 107) EXAMPLE FILE: TCXLDEMO.C.........Line: 1323 --------------------------------------------------------------------------- NAME.........WchkBox DESCRIPTION Determines whether input window box coordinates are valid for use in the active window. PROTOTYPE....IntT CTYP WchkBox(IntT sr, IntT sc, IntT er, IntT ec); ARGUMENTS sr - Start Row sc - Start Column er - End Row ec - End Column RETURNS Nonzero if coordinates are invalid EXAMPLE FILE: WIN\WDRWBOX.C......Line: 28 FILE: WIN\WFILBOX.C......Line: 27 FILE: WIN\WSCRBOX.C......Line: 29 TesSeRact CXL V5.5 Documentation Page 53 --------------------------------------------------------------------------- NAME.........WchkCol DESCRIPTION Determines whether input window column coordinate is valid for use in the active window. PROTOTYPE....IntT CTYP WchkCol(IntT wc); ARGUMENTS wc - Window Column to check RETURNS Nonzero if coordinate is invalid --------------------------------------------------------------------------- NAME.........WchkPos DESCRIPTION Determines whether input window row, column coordinates are valid for use in the active window. PROTOTYPE....IntT CTYP WchkPos(IntT wr, IntT wc); ARGUMENTS wr - Window Row to check wc - Window Column to check RETURNS Nonzero if coordinates are invalid EXAMPLE FILE: WIN\WCHKBOX.C......Line: 21 FILE: WIN\WCURPUT.C......Line: 28 FILE: WIN\WGOTOXY.C......Line: 26 FILE: WIN\WPRTC.C........Line: 27 FILE: WIN\WPRTRJ.C.......Line: 28 FILE: WIN\WPRTS.C........Line: 29 Page 54 TesSeRact CXL V5.5 Documentation --------------------------------------------------------------------------- NAME.........WchkRow DESCRIPTION Determines whether input window row is valid for use in the activewindow. PROTOTYPE....IntT CTYP WchkRow(IntT wr); ARGUMENTS wr - Window Row to check RETURNS Nonzero if coordinate is invalid EXAMPLE FILE: WIN\WCHKPOS.C......Line: 21 FILE: WIN\WLINDEL.C......Line: 27 FILE: WIN\WLININS.C......Line: 27 FILE: WIN\WPRTCEN.C......Line: 29 --------------------------------------------------------------------------- NAME.........Wclear Macro DESCRIPTION Clears the active window and homes the cursor. PROTOTYPE....IntT Wclear(NOARG); #define Wclear() (WclrWin(WdfDat(WctlAct))) ARGUMENTS....None RETURNS ERR_NUL - No Error ERR_ARG - Argument Failure TcxlErr Returns: W_NOACTIVE - No Active Window SEE ALSO WclrWin (Page 57) Vclear (Page 94) VclrScr (Page 94) VclrBox (Page 88) VfilBox (Page 89) EXAMPLE FILE: HLP\HLPSHOW.C......Line: 215, 253 FILE: WIN\WPUTS.C........Line: 132 FILE: TCXLDEMO.C.........Line: 1044, 1491, 1582 TesSeRact CXL V5.5 Documentation Page 55 --------------------------------------------------------------------------- NAME.........WclrEol DESCRIPTION Clears from the cursor to the end of the active window's line. The cursor's position is not updated. PROTOTYPE....IntT CTYP WclrEol(NOARG); ARGUMENTS....None RETURNS ERR_NUL - No Error ERR_ARG - Argument Failure TcxlErr Returns: W_NOACTIVE - No Active Window SEE ALSO VclrEol (Page 94) VputSpa (Page 96) EXAMPLE FILE: MNU\MNUSHOW.C......Line: 400 FILE: WIN\WCLREOS.C......Line: 31, 36 FILE: WIN\WPUTS.C........Line: 138 FILE: TCXLDEMO.C.........Line: 1646 --------------------------------------------------------------------------- NAME.........WclrEos DESCRIPTION Clears from the cursor to the end of the active window. The cursor's position is not updated. PROTOTYPE....IntT WclrEos(NOARG); ARGUMENTS....None RETURNS ERR_NUL - No Error ERR_ARG - Argument Failure TcxlErr Returns: W_NOACTIVE - No Active Window SEE ALSO VputSpa (Page 96) EXAMPLE FILE: WIN\WPUTS.C........Line: 135 Page 56 TesSeRact CXL V5.5 Documentation --------------------------------------------------------------------------- NAME.........WclrWin DESCRIPTION Clears the active window using specified text attribute (See Appendix A), then homes the cursor. This is the same as calling WchgAtr(), followed by Wclear(). [NOTE! Wclear() is implemeted as a macro that calls WclrWin().] PROTOTYPE....IntT CTYP WclrWin(IntT at); ARGUMENTS at - Attribute (See Appendix A) RETURNS ERR_NUL - No Error ERR_ARG - Argument Failure TcxlErr Returns: W_NOACTIVE - No Active Window SEE ALSO Wclear (Page 55) Vclear (Page 94) VclrScr (Page 94) VclrBox (Page 88) VfilBox (Page 89) --------------------------------------------------------------------------- NAME.........WfilBox DESCRIPTION Fills in a region of active window with a specified character and attribute (See Appendix A). PROTOTYPE....IntT CTYP WfilBox(IntT sr, IntT sc, IntT er, IntT ec, IntT ch, IntT at); ARGUMENTS sr - Start Row sc - Start Column er - End Row ec - End Column ch - Character to use at - Attribute (See Appendix A) RETURNS ERR_NUL - No Error TesSeRact CXL V5.5 Documentation Page 57 --------------------------------------------------------------------------- NAME.........WlinDel DESCRIPTION Deletes a line from the active window. Depending upon the input scroll direction, the lines above or below the line to delete will scroll to fill in the deleted line in, and a blank line will be added. If what you really want to do is clear the line, you may want to use WclrEol() instead. PROTOTYPE....IntT CTYP WlinDel(IntT wr, IntT df); ARGUMENTS wr - Window Row to delete df - Direction (See Appendix C [Direction Codes]) RETURNS ERR_NUL - No Error ERR_ARG - Argument Failure TcxlErr Returns: W_NOACTIVE - No Active Window W_INVCOORD - Invalid Window Row --------------------------------------------------------------------------- NAME.........WlinIns DESCRIPTION Inserts a blank line in the active window. Depending upon the input scroll direction, lines will shift up or down to make room for the new line. PROTOTYPE....IntT CTYP WlinIns(IntT wr, IntT di); ARGUMENTS wr - Window Row to delete df - Direction (See Appendix C [Direction Codes]) RETURNS ERR_NUL - No Error ERR_ARG - Argument Failure TcxlErr Returns: W_NOACTIVE - No Active Window W_INVCOORD - Invalid Window Row Page 58 TesSeRact CXL V5.5 Documentation --------------------------------------------------------------------------- NAME.........WscrBox DESCRIPTION Scrolls a region of the active window up or down. PROTOTYPE....IntT CTYP WscrBox(IntT sr, IntT sc, IntT er, IntT ec, IntT n, IntT d); ARGUMENTS sr - Start Row sc - Start Column er - End Row ec - End Column n - Number of lines to scroll d - Direction (Up or Down only!) (See Appendix C [Direction Codes]) RETURNS ERR_NUL - No Error ERR_ARG - Argument Failure TcxlErr Returns: W_NOACTIVE - No Active Window W_INVCOORD - Invalid Window Coordinates SEE ALSO Vscroll (Page 98) EXAMPLE FILE: WIN\WLINDEL.C......Line: 39 FILE: WIN\WLININS.C......Line: 39 TesSeRact CXL V5.5 Documentation Page 59 --------------------------------------------------------------------------- NAME.........WscrWin DESCRIPTION Scrolls text lines within the active window, up or down. PROTOTYPE....IntT WscrWin(IntT n, IntT d); ARGUMENTS n - Number of lines to scroll d - Direction (Up or Down only!) (See Appendix C [Direction Codes]) RETURNS ERR_NUL - No Error ERR_ARG - Argument Failure TcxlErr Returns: W_NOACTIVE - No Active Window SEE ALSO Vscroll (Page 98) EXAMPLE FILE: SEL\_SELECT.C......Line: 382, 402 FILE: WIN\WPUTC.C........Line: 67 FILE: WIN\WPUTS.C........Line: 50 Page 60 TesSeRact CXL V5.5 Documentation --------------------------------------------------------------------------- Active Border --------------------------------------------------------------------------- NAME.........Wborder DESCRIPTION Changes the active window's border type. If changing to or from a borderless window, the window's effective area will change as well, changing relative coordinates within the window. PROTOTYPE....IntT CTYP Wborder(IntT bt); ARGUMENTS bt - Border Type (See Appendix C [Border Types]) RETURNS ERR_NUL - No Error ERR_ARG - Argument Failure TcxlErr Returns: W_NOACTIVE - No Active Window W_INVBTYPE - Invalid Border Type SEE ALSO VdrwBox (Page 89) EXAMPLE FILE: WIN\WSIZE.C........Line: 82 FILE: TCXLDEMO.C.........Line: 1313 --------------------------------------------------------------------------- NAME.........Wbprintc DESCRIPTION Displays a character on a window's border. PROTOTYPE....IntT CTYP Wbprintc(IntT bd, IntT of, IntT at, IntT ch); ARGUMENTS bd - Border Side (See Appendix C [Border Sides]) of - Offset for display at - Text Attribute (See Appendix A) ch - Character to display RETURNS ERR_NUL - No Error ERR_ARG - Argument Failure TcxlErr Returns: W_NOACTIVE - No Active Window W_NOBORDER - Window Has No Border W_INVCOORD - Border Offset Out Of Range TesSeRact CXL V5.5 Documentation Page 61 --------------------------------------------------------------------------- NAME.........WdrwBox DESCRIPTION "Draws" a text box in the active window. PROTOTYPE....IntT CTYP WdrwBox(IntT sr, IntT sc, IntT er, IntT ec, IntT bt, IntT at); ARGUMENTS sr - Start Row sc - Start Column er - End Row ec - End Column bt - Border Type (See Appendix C [Border Types]) ba - Border Attribute (See Appendix A) RETURNS ERR_NUL - No Error ERR_ARG - Argument Failure TcxlErr Returns: W_NOACTIVE - No Active Window W_NOBORDER - Window Has No Border W_INVCOORD - Border Offset Out Of Range SEE ALSO VdrwBox (Page 89) EXAMPLE FILE: SEL\SELATTR.C......Line: 51, 54 Page 62 TesSeRact CXL V5.5 Documentation --------------------------------------------------------------------------- NAME.........WdrwHor DESCRIPTION "Draws" a horizontal text line in active window using characters defined by given box type. If horizontal line crosses a vertical line, an appropriate intersection or corner will be used. PROTOTYPE....IntT CTYP WdrwHor(IntT sr, IntT sc, IntT nc, IntT bt, IntT at); ARGUMENTS sr - Start Row sc - Start Columns nc - Number of Columns bt - Border Type (See Appendix C [Border Types]) at - Attribute (See Appendix A) RETURNS ERR_NUL - No Error ERR_ARG - Argument Failure TcxlErr Returns: W_NOACTIVE - No Active Window W_INVCOORD - Text Line Too Long For Window W_INVBTYPE - Invalid Box Type EXAMPLE FILE: TCXLDEMO.C.........Line: 1777, 2098, 2487, 2488 TesSeRact CXL V5.5 Documentation Page 63 --------------------------------------------------------------------------- NAME.........WdrwVer DESCRIPTION "Draws" a vertical text line in the active window using characters defined by the given box type. If the vertical line crosses a horizontal line, an appropriate intersection or corner will be displayed. PROTOTYPE....IntT CTYP WdrwVer(IntT sr, IntT sc, IntT n, IntT bt, IntT at); ARGUMENTS sr - Start Row sc - Start Columns n - Number of Rows bt - Border Type (See Appendix C [Border Types]) at - Attribute (See Appendix A) RETURNS ERR_NUL - No Error ERR_ARG - Argument Failure TcxlErr Returns: W_NOACTIVE - No Active Window W_INVCOORD - Text Line Too Long For Window W_INVBTYPE - Invalid Box Type EXAMPLE FILE: TCXLDEMO.C.........Line: 2616 Page 64 TesSeRact CXL V5.5 Documentation --------------------------------------------------------------------------- NAME.........Wmessage DESCRIPTION Displays text on the top or bottom border of the active window. PROTOTYPE....IntT CTYP Wmessage(ChrP ps, IntT bo, IntT lo, IntT at); ARGUMENTS ps - Message String bo - Border Sides (See Appendix C [Border Sides]) lo - Left Offset to Display Message at - Attribute (See Appendix A) RETURNS ERR_NUL - No Error ERR_ARG - Argument Failure TcxlErr Returns: W_NOACTIVE - No Active Window W_STRLONG - String Could Not Fit In Window W_NOBORDER - Window Has No Border EXAMPLE FILE: HLP\HLPSHOW.C......Line: 181 FILE: SEL\SELATTR.C......Line: 147 FILE: TCXLDEMO.C.........Line: 1004, 1005, 1006, 1007, 1213, 2330 TesSeRact CXL V5.5 Documentation Page 65 --------------------------------------------------------------------------- NAME.........Wtitle DESCRIPTION Gives active window a title and displays title on top border line of window. If active window has no border, then the window's record will be updated, but no title will be visible. PROTOTYPE....IntT CTYP Wtitle(ChrP ps, IntT tp, IntT ta); ARGUMENTS ps - Title String tp - Title Position (See Appendix C [Title Positions]) ta - Attribute (See Appendix A) RETURNS ERR_NUL - No Error ERR_ARG - Argument Failure ERR_MEM - Memory Allocation Failure TcxlErr Returns: W_NOACTIVE - No Active Window EXAMPLE FILE: HLP\HLPSHOW.C......Line: 86 FILE: SEL\SELFILE.C......Line: 195 FILE: WIN\WBORDER.C......Line: 38 FILE: WIN\WCHGATR.C......Line: 35 FILE: WIN\WPERROR.C......Line: 45 FILE: TCXLDEMO.C.........Line: 1003, 1162, 1212, 1570, 1574, 1668, 1710 Page 66 TesSeRact CXL V5.5 Documentation --------------------------------------------------------------------------- Active Shadow --------------------------------------------------------------------------- NAME.........Wshadoff DESCRIPTION Removes the shadow from the active window, if one exists. This function is only needed when you want to prematurely remove the active window's shadow. The wclose() function automatically calls Wshadoff() when it closes a window. PROTOTYPE....IntT CTYP Wshadoff(NOARG); ARGUMENTS....None RETURNS ERR_NUL - No Error ERR_ARG - Argument Failure ERR_MEM - Memory Allocation Failure TcxlErr Returns: W_NOACTIVE - No Active Window EXAMPLE FILE: WIN\WCLOSE.C.......Line: 29 FILE: WIN\WDRAG.C........Line: 59 FILE: WIN\WHIDE.C........Line: 34 FILE: WIN\WMOVE.C........Line: 33 FILE: WIN\WSIZE.C........Line: 42 FILE: WIN\WSLIDE.C.......Line: 33 TesSeRact CXL V5.5 Documentation Page 67 --------------------------------------------------------------------------- NAME.........Wshadow DESCRIPTION Gives the active window a shadow. The shadow will be cast to the right of the window and will be translucent (the characters underneath the shadow will show through in the given attribute). PROTOTYPE....IntT CTYP Wshadow(IntT at); ARGUMENTS at - Attribute for shadow (most effective is _BLACK | DGREY) RETURNS ERR_NUL - No Error ERR_ARG - Argument Failure ERR_MEM - Memory Allocation Failure TcxlErr Returns: W_NOACTIVE - No Active Window EXAMPLE FILE: WIN\WCOPY.C........Line: 46 FILE: WIN\WDRAG.C........Line: 125 FILE: WIN\WMOVE.C........Line: 58 FILE: WIN\WSIZE.C........Line: 84 FILE: WIN\WSLIDE.C.......Line: 48 FILE: WIN\WUNHIDE.C......Line: 59 FILE: TCXLDEMO.C.........Line: 2164 Page 68 TesSeRact CXL V5.5 Documentation --------------------------------------------------------------------------- Active Cursor --------------------------------------------------------------------------- NAME.........WcurGet Macro .............WcurGt_ DESCRIPTION Reads the current cursor coordinates of the active window. PROTOTYPE....VOID WcurGet(VposT rc); .............VposT CTYP WcurGt_(NOARG); #define WcurGet(rc) (VposW(rc) = WcurGt_()) ARGUMENTS....None RETURNS A structure, filled in with the current row/column position of the active window. SEE ALSO WposGet (Page 72) VcurGet (Page 99) VposGet (Page 103) EXAMPLE FILE: WIN\WCLREOS.C......Line: 28 FILE: WIN\WPUTC.C........Line: 44 FILE: WIN\WPUTCEN.C......Line: 29 FILE: WIN\WPUTRJ.C.......Line: 29 FILE: WIN\WPUTS.C........Line: 75, 120, 124 FILE: TCXLDEMO.C.........Line: 2634 TesSeRact CXL V5.5 Documentation Page 69 --------------------------------------------------------------------------- NAME.........WcurPut Macro .............WcurPt_ DESCRIPTION This function is functionally identical to Wgotoxy, except it takes a Vpos structure as a parameter, instead of separate row/colum figures. PROTOTYPE....IntT WcurPut(VposT rc); .............IntT CTYP WcurPt_(WrdT rc); #define WcurPut(rc) (WcurPt_(VposW(rc))) ARGUMENTS rc - Vpos structure with Window coordinates RETURNS ERR_NUL - No Error ERR_ARG - Argument Failure TcxlErr Returns: W_NOACTIVE - No Active Window W_INVCOORD - Invalid Coordinates SEE ALSO WcurPut (Page 70) Wgotoxy (Page 71) Wpgotoxy (Page 72) VcurPut (Page 101) Vgotoxy (Page 103) EXAMPLE FILE: MNU\MNUSHOW.C......Line: 380, 397 FILE: ENT\ENTSHOW.C......Line: 104, 108 FILE: WIN\WCLREOS.C......Line: 35, 38 FILE: WIN\WPUTCEN.C......Line: 36 FILE: WIN\WPUTRJ.C.......Line: 36 FILE: WIN\WPUTS.C........Line: 126 Page 70 TesSeRact CXL V5.5 Documentation --------------------------------------------------------------------------- NAME.........Wgotoxy DESCRIPTION This function moves the cursor in the active window to the passed row/column coordinates. PROTOTYPE....IntT CTYP Wgotoxy(IntT wr, IntT wc); ARGUMENTS wr - Window Row wc - Window Column RETURNS ERR_NUL - No Error ERR_ARG - Argument Failure TcxlErr Returns: W_NOACTIVE - No Active Window W_INVCOORD - Invalid Coordinates SEE ALSO WcurPut (Page 70) Wpgotoxy (Page 72) VcurPut (Page 101) Vgotoxy (Page 103) EXAMPLE FILE: ENT\ENTFLD.C.......Line: 38 FILE: SEL\SELATTR.C......Line: 52 FILE: SEL\_SELECT.C......Line: 438 FILE: WIN\WBORDER.C......Line: 36 FILE: WIN\WCLRWIN.C......Line: 32 FILE: WIN\WOPEN.C........Line: 95 FILE: WIN\WPGOTOXY.C.....Line: 30 FILE: WIN\WSIZE.C........Line: 73 FILE: TCXLDEMO.C.........Line: 1645, 2102, 2470 TesSeRact CXL V5.5 Documentation Page 71 --------------------------------------------------------------------------- NAME.........Wpgotoxy DESCRIPTION Sets cursor coordinates within the active window. If cursor coordinates are out of the window, wpgotoxy() will try to wrap them around to fit in the window. PROTOTYPE....IntT CTYP Wpgotoxy(IntT wr, IntT wc); ARGUMENTS wr - Window Row wc - Window Column RETURNS ERR_NUL - No Error ERR_ARG - Argument Failure TcxlErr Returns: W_NOACTIVE - No Active Window SEE ALSO WcurPut (Page 70) Wgotoxy (Page 71) VcurPut (Page 101) Vgotoxy (Page 103) --------------------------------------------------------------------------- NAME.........WposGet Macro DESCRIPTION Reads the current cursor coordinates of the active window. PROTOTYPE....VOID WposGet(IntT r, IntT c); #define WposGet(r,c) ((c)=MsInt(WcurGt_()); (r)=((c)>>8); (c)&=0xFF) ARGUMENTS r - Window Row c - Window Column RETURNS The current row/column position of the active window. SEE ALSO WcurGet (Page 69) VcurGet (Page 99) VposGet (Page 103) Page 72 TesSeRact CXL V5.5 Documentation --------------------------------------------------------------------------- Active Window Formatted Output --------------------------------------------------------------------------- NAME.........WdupChr DESCRIPTION Displays a character a specified number of times in the active window. Characters will be displayed in the window's current text attribute (See Appendix A). Control characters and escape sequences (See Appendix D) are recognized; Cursor position is updated. PROTOTYPE....VOID CTYP WdupChr(IntT ch, IntT nd); ARGUMENTS ch - Character to Display nd - Number of times to display character RETURNS......None SEE ALSO WdupChrA (Page 79) EXAMPLE FILE: WIN\WPUTS.C........Line: 144 --------------------------------------------------------------------------- NAME.........WdupStr DESCRIPTION Displays a string a specified number of times in the active window. Characters will be displayed in the window's current text attribute (See Appendix A). Control characters and escape sequences (See Appendix D) are recognized; Cursor position is updated. PROTOTYPE....VOID CTYP WdupStr(ChrP ps, IntT nd); ARGUMENTS ps - String to Display nd - Number of times to display string RETURNS......None SEE ALSO WdupStrA (Page 80) TesSeRact CXL V5.5 Documentation Page 73 --------------------------------------------------------------------------- NAME.........Wputc DESCRIPTION Displays a character at the current window coordinates, using the current text attribute (See Appendix A). Control characters and escape sequences (See Appendix D) are recognized; Cursor position is updated. PROTOTYPE....VOID CTYP Wputc(IntT ch); ARGUMENTS ch - Character to Display RETURNS......None SEE ALSO Wprtc (Page 81) Vprintc (Page 95) Vputc (Page 97) EXAMPLE FILE: WIN\WDUPCHR.C......Line: 22 FILE: WIN\WPERROR.C......Line: 47 FILE: WIN\WPUTFMT.C......Line: 40, 50, 53, 60 FILE: WIN\WPUTNS.C.......Line: 28 FILE: WIN\WPUTSW.C.......Line: 42 FILE: WIN\WPUTSW.C.......Line: 47 FILE: INP\KWGETCF.C......Line: 48 FILE: INP\KWGETCH.C......Line: 30 FILE: INP\KWGETFMT.C.....Line: 39, 49, 109 FILE: INP\KWGETSN.C......Line: 44, 45, 46, 55 FILE: INP\KWGETST.C......Line: 30, 37, 38, 39 FILE: TCXLDEMO.C.........Line: 1035, 1045 Page 74 TesSeRact CXL V5.5 Documentation --------------------------------------------------------------------------- NAME.........Wputs DESCRIPTION Displays a string at the current window coordinates, using the current text attribute (See Appendix A). Control characters and escape sequences (See Appendix D) are recognized; Cursor position is updated. PROTOTYPE....VOID CTYP Wputs(ChrP ps); ARGUMENTS ps - String to Display RETURNS......None SEE ALSO Wprts (Page 82) Vprints (Page 96) EXAMPLE FILE: MNU\MNUSHOW.C......Line: 399 FILE: HLP\HLPSHOW.C......Line: 107, 113, 114, 115, 266, 273, 301, 321, 322, 323 FILE: WIN\WDUPSTR.C......Line: 22 FILE: WIN\WPERROR.C......Line: 48 FILE: WIN\WPUTCEN.C......Line: 37 FILE: WIN\WPUTF.C........Line: 34 FILE: WIN\WPUTRJ.C.......Line: 37 FILE: WIN\WPUTSW.C.......Line: 38, 50, 62, 72 FILE: INP\KWGETYN.C......Line: 29, 31, 33 FILE: TCXLDEMO.C.........Line: 1217, 1264, 1286, 1307, 1380, 1398, 1494, 1498, 1505, 1509, 1513, 1517, 1521, 1525, 1528, 1531, 1535, 1539, 1754, 2142, 2150, 2382, 2437, 2466, 2509, 2536 TesSeRact CXL V5.5 Documentation Page 75 --------------------------------------------------------------------------- NAME.........Wputns DESCRIPTION Displays a string at the current window coordinates, using the current text attribute (See Appendix A). The input width will determine how many characters are actually displayed. Control characters and escape sequences (See Appendix D) are recognized; Cursor position is updated. PROTOTYPE....VOID CTYP Wputns(ChrP ps, IntT wd); ARGUMENTS ps - String to Display wd - Width of Output String RETURNS......None SEE ALSO Wprtns (Page 83) --------------------------------------------------------------------------- NAME.........Wputsw DESCRIPTION Displays a string at the current window coordinates, using the current text attribute (See Appendix A). Words will be wrapped around to the next line if necessary. Control characters and escape sequences (See Appendix D) are recognized; Cursor position is updated. PROTOTYPE....VOID CTYP Wputsw(ChrP ps); ARGUMENTS ps - String to Display RETURNS......None SEE ALSO Wprtsw (Page 83) EXAMPLE FILE: TCXLDEMO.C.........Line: 1130, 2106, 2109 Page 76 TesSeRact CXL V5.5 Documentation --------------------------------------------------------------------------- NAME.........Wputf DESCRIPTION Displays a formatted string to the active window at the current cursor position using the current text attribute (See Appendix A). Works like the standard printf() function does. Control characters and escape sequences (See Appendix D) are recognized; Cursor position is updated. PROTOTYPE....IntT CDC wputf(ChrP fs, ...); ARGUMENTS fs - Format String (See your compiler's documentation) ... - Additional Arguments RETURNS ERR_NUL - No Error ERR_ARG - Argument Failure TcxlErr Returns: W_NOACTIVE - No Active Window SEE ALSO Wprtf (Page 84) --------------------------------------------------------------------------- NAME.........WputFmt DESCRIPTION Displays a string to active window using a CXL format string. If a character in a string doesn't match its format control character, it will be displayed as a '?'. Control characters and escape sequences (See Appendix D) are recognized; Cursor position is updated. PROTOTYPE....IntT CTYP WputFmt(ChrP fs, ChrP ps); ARGUMENTS fs - Format Control String (See Appendix D) ps - String to Display RETURNS ERR_NUL - No Error ERR_ARG - Argument Failure TcxlErr Returns: W_NOACTIVE - No Active Window W_INVFORMT - Invalid Format String W_STRLONG - String Could Not Fit In Window SEE ALSO WprtFmt (Page 85) TesSeRact CXL V5.5 Documentation Page 77 --------------------------------------------------------------------------- NAME.........WputCen DESCRIPTION Centers a string in the active window, on the current row, using the current text attribute (See Appendix A). Control characters and escape sequences (See Appendix D) are recognized; Cursor position is updated. PROTOTYPE....IntT CTYP WputCen(ChrP ps); ARGUMENTS ps - String to Center RETURNS ERR_NUL - No Error ERR_ARG - Argument Failure TcxlErr Returns: W_NOACTIVE - No Active Window W_STRLONG - String Could Not Fit In Window SEE ALSO WprtCen (Page 86) EXAMPLE FILE: TCXLDEMO.C.........Line: 816, 820, 824, 828, 1036, 1046, 1136, 1471, 1472, 1492 --------------------------------------------------------------------------- NAME.........Wputrj DESCRIPTION Right-justifies a string in the active window, on the current row, using the current text attribute (See Appendix A). Control characters and escape sequences (See Appendix D) are recognized; Cursor position is updated. PROTOTYPE....IntT CTYP Wputrj(ChrP ps); ARGUMENTS ps - String to Justify RETURNS ERR_NUL - No Error ERR_ARG - Argument Failure TcxlErr Returns: W_NOACTIVE - No Active Window W_STRLONG - String Could Not Fit In Window SEE ALSO Wprtrj (Page 87) Page 78 TesSeRact CXL V5.5 Documentation --------------------------------------------------------------------------- NAME........._Wputl <_TcxlWin.H> DESCRIPTION Return length of string, skipping any TCXL Output escape characters (See Appendix D), as well as skipping all control characters. Used internally by formatted output routines. PROTOTYPE....IntT CTYP _Wputl(ChrP tp); ARGUMENTS tp - Output String RETURNS Length of Output String EXAMPLE FILE: WIN\WPERROR.C......Line: 27 FILE: WIN\WPUTCEN.C......Line: 31 FILE: WIN\WPUTRJ.C.......Line: 31 --------------------------------------------------------------------------- Active Window Unformatted Output --------------------------------------------------------------------------- NAME.........WdupChrA DESCRIPTION Displays a character a specified number of times in the active window at the specified coordinates, using the specified attribute (See Appendix A). Control characters and escape sequences are NOT recognized; Cursor position is NOT updated. PROTOTYPE....VOID CTYP WdupChrA(IntT wr, IntT wc, IntT at, IntT ch, IntT nd); ARGUMENTS wr - Window Row wc - Window Column at - Attribute (See Appendix A) ch - Character to Display nd - Number of times to display character RETURNS......None SEE ALSO WdupChr (Page 73) TesSeRact CXL V5.5 Documentation Page 79 --------------------------------------------------------------------------- NAME.........WdupStrA DESCRIPTION Displays a string a specified number of times in the active window at the specified coordinates, using the specified attribute (See Appendix A). Control characters and escape sequences are NOT recognized; Cursor position is NOT updated. PROTOTYPE....VOID CTYP WdupStrA(IntT wr, IntT wc, IntT at, ChrP ps, IntT nd); ARGUMENTS wr - Window Row wc - Window Column at - Attribute (See Appendix A) ps - String to Display nd - Number of times to display string RETURNS......None SEE ALSO WdupStr (Page 73) Page 80 TesSeRact CXL V5.5 Documentation --------------------------------------------------------------------------- NAME.........Wprtc DESCRIPTION Displays a character at the specified coordinates, using the specified attribute (See Appendix A). Control characters and escape sequences are NOT recognized; Cursor position is NOT updated. PROTOTYPE....IntT CTYP Wprtc(IntT wr, IntT wc, IntT at, IntT ch); ARGUMENTS wr - Window Row wc - Window Column at - Attribute (See Appendix A) ch - Character to Display RETURNS ERR_NUL - No Error ERR_ARG - Argument Failure TcxlErr Returns: W_NOACTIVE - No Active Window W_INVCOORD - Invalid Coordinates SEE ALSO Wputc (Page 74) Vprintc (Page 95) EXAMPLE FILE: MNU\MNUSHOW.C......Line: 394 FILE: ENT\ENTSHOW.C......Line: 333, 503 FILE: ENT\_FLDDSP.C......Line: 112, 113, 129, 143, 150, 155, 161, 162 FILE: SEL\_SELECT.C......Line: 441 FILE: WIN\WDUPCHRA.C.....Line: 22 FILE: WIN\WPRTFMT.C......Line: 40, 50, 53, 60 FILE: WIN\WPRTNS.C.......Line: 28 TesSeRact CXL V5.5 Documentation Page 81 --------------------------------------------------------------------------- NAME.........Wprts DESCRIPTION Displays a string at the specified coordinates, using the specified attribute (See Appendix A). Control characters and escape sequences are NOT recognized; Cursor position is NOT updated. PROTOTYPE....IntT CTYP Wprts(IntT wr, IntT wc, IntT at, ChrP ps); ARGUMENTS wr - Window Row wc - Window Column at - Attribute (See Appendix A) ps - String to Display RETURNS ERR_NUL - No Error ERR_ARG - Argument Failure TcxlErr Returns: W_NOACTIVE - No Active Window W_INVCOORD - Invalid Coordinates SEE ALSO Wputs (Page 75) Vprints (Page 96) EXAMPLE FILE: SEL\SELATTR.C......Line: 141 FILE: SEL\SELTXT.C.......Line: 34 FILE: WIN\WDUPSTRA.C.....Line: 22 FILE: WIN\WPRTF.C........Line: 34 FILE: WIN\WPRTSW.C.......Line: 38, 54, 66, 76 FILE: TCXLDEMO.C.........Line: 832, 1014, 1660 Page 82 TesSeRact CXL V5.5 Documentation --------------------------------------------------------------------------- NAME.........Wprtns DESCRIPTION Displays a string at the specified coordinates, using the specified attribute (See Appendix A). The input width will determine how many characters are actually displayed. Control characters and escape sequences are NOT recognized; Cursor position is NOT updated. PROTOTYPE....VOID CTYP Wprtns(IntT wr, IntT wc, IntT at, ChrP ps, IntT wd); ARGUMENTS wr - Window Row wc - Window Column at - Attribute (See Appendix A) ps - String to Display wd - Width of Output String RETURNS......None SEE ALSO Wputns (Page 76) EXAMPLE FILE: SEL\_SELECT.C......Line: 456 --------------------------------------------------------------------------- NAME.........Wprtsw DESCRIPTION Displays a string at the specified coordinates, using the specified attribute (See Appendix A). Words will be wrapped around to the next line if necessary. Control characters and escape sequences are NOT recognized; Cursor position is NOT updated. PROTOTYPE....IntT CTYP Wprtsw(IntT wr, IntT wc, IntT at, ChrP ps); ARGUMENTS wr - Window Row wc - Window Column at - Attribute (See Appendix A) ps - String to Display RETURNS ERR_NUL - No Error ERR_ARG - Argument Failure TcxlErr Returns: W_NOACTIVE - No Active Window W_INVCOORD - Invalid Coordinates SEE ALSO Wputsw (Page 76) TesSeRact CXL V5.5 Documentation Page 83 --------------------------------------------------------------------------- NAME.........Wprtf DESCRIPTION Displays a formatted string to the active window at the specified coordinates, using the specified attribute (See Appendix A). Works like the standard printf() function does. Control characters and escape sequences are NOT recognized; Cursor position is NOT updated. PROTOTYPE....IntT CDC wprtf(IntT wr, IntT wc, IntT at, ChrP fs, ...); ARGUMENTS wr - Window Row wc - Window Column at - Attribute (See Appendix A) fs - Format String (See your compiler's documentation) ... - Additional Arguments RETURNS ERR_NUL - No Error ERR_ARG - Argument Failure TcxlErr Returns: W_NOACTIVE - No Active Window W_INVCOORD - Invalid Coordinates SEE ALSO Wputf (Page 77) Page 84 TesSeRact CXL V5.5 Documentation --------------------------------------------------------------------------- NAME.........WprtFmt DESCRIPTION Displays a string to active window using a CXL format string at the specified coordinates, using the specified attribute (See Appendix A). If a character in a string doesn't match its format control character, it will be displayed as a '?'. Control characters and escape sequences are NOT recognized; Cursor position is NOT updated. PROTOTYPE....IntT CTYP WprtFmt(IntT wr, IntT wc, IntT at, ChrP fs, ChrP ps); ARGUMENTS wr - Window Row wc - Window Column at - Attribute (See Appendix A) fs - Format Control String (See Appendix D) ps - String to Display RETURNS ERR_NUL - No Error ERR_ARG - Argument Failure TcxlErr Returns: W_NOACTIVE - No Active Window W_INVCOORD - Invalid Coordinates W_INVFORMT - Invalid Format String W_STRLONG - String Could Not Fit In Window SEE ALSO WputFmt (Page 77) TesSeRact CXL V5.5 Documentation Page 85 --------------------------------------------------------------------------- NAME.........WprtCen DESCRIPTION Centers a string in the active window at the specified coordinates, using the specified attribute (See Appendix A). Control characters and escape sequences are NOT recognized; Cursor position is NOT updated. PROTOTYPE....IntT CTYP WprtCen(IntT wr, IntT at, ChrP ps); ARGUMENTS wr - Window Row at - Attribute (See Appendix A) ps - String to Center RETURNS ERR_NUL - No Error ERR_ARG - Argument Failure TcxlErr Returns: W_NOACTIVE - No Active Window W_INVCOORD - Invalid Coordinates W_STRLONG - String Could Not Fit In Window SEE ALSO WputCen (Page 78) EXAMPLE FILE: TCXLDEMO.C.........Line: 833, 840, 842, 1248, 2115, 2345, 2354 Page 86 TesSeRact CXL V5.5 Documentation --------------------------------------------------------------------------- NAME.........Wprtrj DESCRIPTION Right justifies a string in the active window at the specified coordinates, using the specified attribute (See Appendix A). Control characters and escape sequences are NOT recognized; Cursor position is NOT updated. PROTOTYPE....IntT CTYP Wprtrj(IntT wr, IntT wc, IntT at, ChrP ps); ARGUMENTS wr - Window Row wc - Window Column at - Attribute (See Appendix A) ps - String to Justify RETURNS ERR_NUL - No Error ERR_ARG - Argument Failure TcxlErr Returns: W_NOACTIVE - No Active Window W_INVCOORD - Invalid Coordinates W_STRLONG - String Could Not Fit In Window SEE ALSO Wputrj (Page 78) EXAMPLE FILE: TCXLDEMO.C.........Line: 834 TesSeRact CXL V5.5 Documentation Page 87 --------------------------------------------------------------------------- Display System Window Builders --------------------------------------------------------------------------- NAME.........VclrBox Macro DESCRIPTION Clears a section of the screen using the text attribute (See Appendix A) at the current cursor position. PROTOTYPE....VOID VclrBox(VposT s, VposT e); #define VclrBox(s,e) (VfilBox((s),(e), ' ',(Vgetw_(VposR(s),VposC(s))>>8))) ARGUMENTS s - Start Position e - End Position RETURNS......None SEE ALSO Wclear (Page 55) WclrWin (Page 57) Page 88 TesSeRact CXL V5.5 Documentation --------------------------------------------------------------------------- NAME.........VdrwBox Macro .............VdrwBx_ DESCRIPTION "Draws" a text box on the screen. PROTOTYPE....VOID VdrwBox(VposT s, VposT e, IntT b, IntT a); .............VOID CTYP VdrwBx_(WrdT s, WrdT e, IntT b, IntT a); #define VdrwBox(s,e,b,a) (VdrwBx_(VposW(s),VposW(e),(b),(a))) ARGUMENTS s - Start Position e - End Position b - Border Type (See Appendix C [Border Types]) a - Attribute (See Appendix A) RETURNS......None SEE ALSO Wborder (Page 61) EXAMPLE FILE: WIN\WBORDER.C......Line: 31 FILE: WIN\WCHGATR.C......Line: 33 FILE: WIN\WDRWBOX.C......Line: 42 FILE: WIN\WOPEN.C........Line: 87 FILE: WIN\WTITLE.C.......Line: 34 --------------------------------------------------------------------------- NAME.........VfilBox Macro .............VfilBx_ DESCRIPTION Fills in a region of the screen with a specified character and attribute (See Appendix A). PROTOTYPE....VOID VfilBox(VposT s, VposT e, IntT c, IntT a); .............VOID CTYP VfilBx_(WrdT s, WrdT e, IntT c, IntT a); #define VfilBox(s,e,c,a) (VfilBx_(VposW(s),VposW(e),(c),(a))) ARGUMENTS s - Start Position e - End Position c - Character to fill a - Attribute (See Appendix A) RETURNS......None EXAMPLE FILE: WIN\WCLRWIN.C......Line: 31 FILE: WIN\WFILBOX.C......Line: 41 TesSeRact CXL V5.5 Documentation Page 89 --------------------------------------------------------------------------- NAME.........Vsave DESCRIPTION Saves the current screen to a buffer. PROTOTYPE....VcelP CTYP Vsave(NOARG); ARGUMENTS....None RETURNS Address of the buffer save area, or NULL if a memory allocation error occurred. SEE ALSO Wsave (Page 42) Wrestore (Page 41) Vrestore (Page 90) EXAMPLE FILE: TCXLDEMO.C.........Line: 1433 --------------------------------------------------------------------------- NAME.........Vrestore DESCRIPTION Restores a previously-saved buffer to the video. PROTOTYPE....VOID CTYP Vrestore(VcelP b); ARGUMENTS b - Previously Saved Buffer RETURNS......None SEE ALSO Wsave (Page 42) Wrestore (Page 41) Vsave (Page 90) EXAMPLE FILE: TCXLDEMO.C.........Line: 1457 Page 90 TesSeRact CXL V5.5 Documentation --------------------------------------------------------------------------- Video Control --------------------------------------------------------------------------- NAME.........VidInit DESCRIPTION This function intializes the TCXL Display System and Video Access Subsystem. It is called automatically by TcxlInit (Page 142) and is documented here for information purposes only. PROTOTYPE....VOID CTYP VidInit(NOARG); ARGUMENTS....None RETURNS......None SEE ALSO VidTerm (Page 92) EXAMPLE FILE: HDW\TCXLINIT.C.....Line: 74 --------------------------------------------------------------------------- NAME.........VidMode DESCRIPTION This function either gets the current video mode (if the passed parameter is 0xFF), or it sets the display mode to the passed parameter. In either case, the _VidCtl (See User's Guide) structure is updated. PROTOTYPE....IntT PAS VidMode(IntT m); ARGUMENTS m - New Video Mode, or 0xFF to return current mode. RETURNS Current or New Video Mode SEE ALSO _VuvSet (Page 173) EXAMPLE FILE: DSP\VIDINIT.C......Line: 52 FILE: DSP\VSETLIN.C......Line: 58 TesSeRact CXL V5.5 Documentation Page 91 --------------------------------------------------------------------------- NAME.........VidParm DESCRIPTION Sets video display parameters. PROTOTYPE....IntT CTYP VidParm(IntT p); ARGUMENTS p - Video Display Parameter (VP_????). RETURNS Nonzero if invalid parameter. SEE ALSO VidInit (Page 91) VidType (Page 93) EXAMPLE FILE: TCXLDEMO.C.........Line: 776, 780, 784 --------------------------------------------------------------------------- NAME.........VidTerm DESCRIPTION Terminates the Display System and Video Access Subsystems. In TCXL 5.5, this is a null function. This function is automatically called by the C compiler's atexit() chain. PROTOTYPE....VOID CTYP VidTerm(NOARG); ARGUMENTS....None RETURNS......None SEE ALSO VidInit (Page 91) EXAMPLE FILE: HDW\TCXLINIT.C.....Line: 93 Page 92 TesSeRact CXL V5.5 Documentation --------------------------------------------------------------------------- NAME.........VidType DESCRIPTION Returns the display adapter type. PROTOTYPE....IntT CTYP VidType(NOARG); ARGUMENTS....None RETURNS The current display adapter type. SEE ALSO VidInit (Page 91) _VuvGet (Page 172) EXAMPLE FILE: DSP\VIDINIT.C......Line: 51 --------------------------------------------------------------------------- NAME.........VsetLin DESCRIPTION Sets the number of lines on the display. Do NOT use this function if UltraVision has been detected. Use _VuvSet (Page 173) instead. PROTOTYPE....IntT CTYP VsetLin(IntT n); ARGUMENTS n - Number of lines (only 25, 43 and 50 are valid). RETURNS Nonzero if invalid line value. SEE ALSO _VuvGet (Page 172) _VuvSet (Page 173) VidMode (Page 91) VidInit (Page 91) VidType (Page 93) EXAMPLE FILE: TCXLDEMO.C.........Line: 979, 2071, 2074, 2077 TesSeRact CXL V5.5 Documentation Page 93 --------------------------------------------------------------------------- NAME.........Vclear DESCRIPTION Clears the screen using the passed text attribute (See Appendix A) and homes the cursor. PROTOTYPE....VOID CTYP Vclear(IntT a); ARGUMENTS a - Attribute (See Appendix A) RETURNS......None SEE ALSO Wclear (Page 55) EXAMPLE FILE: DSP\VCLRSCR.C......Line: 24 FILE: TCXLDEMO.C.........Line: 1440 --------------------------------------------------------------------------- NAME.........VclrEol DESCRIPTION Clears to the end of the video line using the text attribute (See Appendix A) under the cursor. PROTOTYPE....VOID CTYP VclrEol(NOARG); ARGUMENTS....None RETURNS......None SEE ALSO WclrEol (Page 56) --------------------------------------------------------------------------- NAME.........VclrScr DESCRIPTION Clears the screen using the text attribute (See Appendix A) under the cursor, and homes the cursor. PROTOTYPE....VOID CTYP VclrScr(NOARG); ARGUMENTS....None RETURNS......None SEE ALSO WclrWin (Page 57) Page 94 TesSeRact CXL V5.5 Documentation --------------------------------------------------------------------------- Video Output --------------------------------------------------------------------------- NAME.........Vprintc DESCRIPTION Displays a character to the screen at a specified location, using a specified attribute (See Appendix A). Does not recognize control characters and does not affect cursor position. PROTOTYPE....VOID CTYP Vprintc(IntT r, IntT c, IntT a, IntT x); ARGUMENTS r - Row c - Column a - Attribute (See Appendix A) x - Character to Display RETURNS......None SEE ALSO Wputc (Page 74) Wprtc (Page 81) Vattrib (Page 107) Vprints (Page 96) EXAMPLE FILE: SEL\_SELECT.C......Line: 102, 103 FILE: WIN\WBPRINTC.C.....Line: 50 FILE: WIN\WCLREOL.C......Line: 30 FILE: WIN\WDRWHOR.C......Line: 121, 125, 130 FILE: WIN\WDRWVER.C......Line: 123, 127, 132 FILE: WIN\WPRTC.C........Line: 33 FILE: WIN\WPRTS.C........Line: 41 FILE: WIN\WSHADOFF.C.....Line: 38, 40, 47 FILE: WIN\WTITLE.C.......Line: 61 FILE: WIN\WWPRINTS.C.....Line: 89, 143 TesSeRact CXL V5.5 Documentation Page 95 --------------------------------------------------------------------------- NAME.........Vprints DESCRIPTION Displays a string to the screen at a specified location, using a specified attribute (See Appendix A). Does not recognize control characters and does not affect cursor position. PROTOTYPE....VOID CTYP Vprints(IntT r, IntT c, IntT a, ChrP s); ARGUMENTS r - Row c - Column a - Attribute (See Appendix A) s - String to Display RETURNS......None SEE ALSO Wputs (Page 75) Wprts (Page 82) Vattrib (Page 107) Vprintc (Page 95) EXAMPLE FILE: WIN\WMESSAGE.C.....Line: 33 FILE: WIN\WPRTCEN.C......Line: 39 FILE: WIN\WPRTRJ.C.......Line: 38 FILE: WIN\WPRTS.C........Line: 37, 60 FILE: TCXLDEMO.C.........Line: 2606 --------------------------------------------------------------------------- NAME.........VputSpa DESCRIPTION Displays a specified number of spaces to the screen using the text attribute (See Appendix A) of the character under the cursor. PROTOTYPE....VOID PAS VputSpa(IntT n); ARGUMENTS n - Number of spaces to display RETURNS......None EXAMPLE FILE: DSP\VCLREOL.C......Line: 25 Page 96 TesSeRact CXL V5.5 Documentation --------------------------------------------------------------------------- NAME.........Vputc DESCRIPTION Displays a character/attribute (See Appendix A) on the display at the specified position, using the video BIOS routines. PROTOTYPE....VOID CTYP Vputc(IntT r, IntT c, IntT x, IntT a); ARGUMENTS r - Row c - Column x - Character to Display a - Attribute (See Appendix A) RETURNS......None EXAMPLE FILE: WIN\WPUTC.C........Line: 60 FILE: WIN\WPUTS.C........Line: 153 --------------------------------------------------------------------------- NAME.........Vputw Macro .............Vputw_ DESCRIPTION Put a VcelT to the screen PROTOTYPE....VOID Vputw(IntT r, IntT c, VcelT x); .............VOID CTYP Vputw_(IntT r, IntT c, WrdT x); #define Vputw(r,c,x) (Vputw_((r),(c), VcelW(x))) ARGUMENTS r - Row c - Column x - VcelT to display RETURNS......None EXAMPLE FILE: WIN\WACTIV.C.......Line: 173 FILE: WIN\WCHGATR.C......Line: 40 FILE: WIN\WDRAG.C........Line: 104 FILE: WIN\WDRAG.C........Line: 114 FILE: WIN\WSHADOW.C......Line: 49, 51, 60 FILE: WIN\WSIZE.C........Line: 56, 60, 65 TesSeRact CXL V5.5 Documentation Page 97 --------------------------------------------------------------------------- NAME.........Vscroll Macro .............Vscrol_ DESCRIPTION Calls the video BIOS to scroll a region of teh display up or down. PROTOTYPE....VOID Vscroll(IntT d, VposT s, VposT e, IntT n, IntT a); .............VOID PAS Vscrol_(IntT d, WrdT s, WrdT e, IntT n, IntT a); #define Vscroll(d,s,e,n,a) (Vscrol_((d),VposW(s),VposW(e),(n),(a))) ARGUMENTS d - Direction (0=down, 1=up) s - Upper Left Corner e - Lower Right Corner n - Number of Lines to Scroll a - Attribute (See Appendix A) to clear area to RETURNS......None EXAMPLE FILE: WIN\WSCRBOX.C......Line: 47 FILE: WIN\WSCRWIN.C......Line: 41 FILE: DSP\VCLEAR.C.......Line: 27 --------------------------------------------------------------------------- NAME.........Vgetw Macro .............Vgetw_ DESCRIPTION Get char/attr from screen as a VcelT object PROTOTYPE....VOID Vgetw(IntT r, IntT c, VcelT x); .............WrdT CTYP Vgetw_(IntT r, IntT c); #define Vgetw(r,c,x) (VcelW(x)=Vgetw_((r),(c))) ARGUMENTS r - Row c - Column RETURNS x - VcelT from screen. EXAMPLE FILE: WIN\WACTIV.C.......Line: 167 FILE: WIN\WCHGATR.C......Line: 38 FILE: WIN\WDRWHOR.C......Line: 101, 105 FILE: WIN\WDRWVER.C......Line: 103, 107 FILE: WIN\WSHADOW.C......Line: 44, 45, 57 FILE: WIN\WSIZE.C........Line: 55 Page 98 TesSeRact CXL V5.5 Documentation --------------------------------------------------------------------------- Cursor Control --------------------------------------------------------------------------- NAME.........VcurGet Macro .............VcurGt_ DESCRIPTION Reads the current cursor location. PROTOTYPE....VOID VcurGet(VposT v); .............WrdT PAS VcurGt_(NOARG); #define VcurGet(v) (VposW(v)=VcurGt_()) ARGUMENTS v - Position RETURNS......None SEE ALSO VposGet (Page 103) WcurGet (Page 69) WposGet (Page 72) EXAMPLE FILE: WIN\WCURGET.C......Line: 29 FILE: WIN\WPERROR.C......Line: 29 FILE: WIN\WWPRINTS.C.....Line: 64 FILE: DSP\VATRREV.C......Line: 26 FILE: DSP\VATRSET.C......Line: 25 FILE: DSP\VCLREOL.C......Line: 24 FILE: DSP\VPRINTC.C......Line: 25 FILE: DSP\VPRINTS.C......Line: 25 FILE: INP\KEYGETC.C......Line: 140 FILE: TCXLDEMO.C.........Line: 743 TesSeRact CXL V5.5 Documentation Page 99 --------------------------------------------------------------------------- NAME.........VcurHid DESCRIPTION Hide or show the video cursor, and return the current cursor state. PROTOTYPE....IntT CTYP VcurHid(IntT s); ARGUMENTS s - Hide if zero, Show if positive, just return state if negative. RETURNS FALSE if previously hidden, TRUE if previously shown. EXAMPLE FILE: HLP\HLPSHOW.C......Line: 93, 140 FILE: SEL\SELATTR.C......Line: 136 FILE: DSP\VCURSET.C......Line: 26 FILE: TCXLDEMO.C.........Line: 898, 981, 1058, 1089, 1091, 1095, 1098, 1157, 1180, 1196, 1228, 1382, 1386, 1566, 1626, 1644, 1652, 1711, 2047, 2085, 2197, 2219, 2230, 2320, 2346, 2424, 2452 Page 100 TesSeRact CXL V5.5 Documentation --------------------------------------------------------------------------- NAME.........VcurPut Macro .............VcurPt_ DESCRIPTION Set a new cursor location PROTOTYPE....VOID VcurPut(VposT v); .............VOID PAS VcurPt_(WrdT v); #define VcurPut(v) (VcurPt_(VposW(v))) ARGUMENTS v - New Position RETURNS......None SEE ALSO Vgotoxy (Page 103) WcurPut (Page 70) Wgotoxy (Page 71) EXAMPLE FILE: WIN\WACTIV.C.......Line: 120 FILE: WIN\WCLOSE.C.......Line: 38 FILE: WIN\WCURPUT.C......Line: 38 FILE: WIN\WDRAG.C........Line: 126 FILE: WIN\WGOTOXY.C......Line: 35 FILE: WIN\WHIDE.C........Line: 52 FILE: WIN\WMOVE.C........Line: 59 FILE: WIN\WPERROR.C......Line: 52 FILE: WIN\WPUTC.C........Line: 71 FILE: WIN\WPUTS.C........Line: 74, 158 FILE: WIN\WSHADOW.C......Line: 64 FILE: WIN\WUNHIDE.C......Line: 62 FILE: WIN\WWPRINTS.C.....Line: 94 FILE: DSP\VATRREV.C......Line: 32 FILE: DSP\VATRSET.C......Line: 28 FILE: DSP\VCLEAR.C.......Line: 28 FILE: DSP\VPRINTC.C......Line: 29 FILE: DSP\VPRINTS.C......Line: 29 FILE: INP\KEYGETC.C......Line: 145 FILE: TCXLDEMO.C.........Line: 2196 TesSeRact CXL V5.5 Documentation Page 101 --------------------------------------------------------------------------- NAME.........VcurSet DESCRIPTION Set the cursor size PROTOTYPE....VOID CTYP VcurSet(IntT s); ARGUMENTS s - Underline cursor if zero, block cursor otherwise. RETURNS......None EXAMPLE FILE: ENT\ENTSHOW.C......Line: 97, 192, 196, 305 --------------------------------------------------------------------------- NAME.........VcurSiz Macro .............VcurSz_ DESCRIPTION Sets and gets the current cursor size/shape. PROTOTYPE....VOID VcurSiz(VcseT c); .............WrdT PAS VcurSz_(WrdT c); #define VcurSiz(c) (VcseW(c)=VcurSz_(VcseW(c))) ARGUMENTS c - If 0:0, return cursor start/stop lines; otherwise, set cursor shape. RETURNS Current Cursor Size EXAMPLE FILE: SEL\SELATTR.C......Line: 135, 148 FILE: DSP\VCURHID.C......Line: 26, 35, 40 FILE: DSP\VCURSET.C......Line: 49 FILE: DSP\VSETLIN.C......Line: 53 FILE: INP\KEYGETC.C......Line: 139, 144 Page 102 TesSeRact CXL V5.5 Documentation --------------------------------------------------------------------------- NAME.........Vgotoxy DESCRIPTION Sets the cursor position to the passed row/col coordinate. PROTOTYPE....VOID PAS Vgotoxy(IntT r, IntT c); ARGUMENTS r - Row c - Column RETURNS......None SEE ALSO VcurPut (Page 101) WcurPut (Page 70) Wgotoxy (Page 71) --------------------------------------------------------------------------- NAME.........VposGet Macro DESCRIPTION Reads the current cursor location. PROTOTYPE....VOID PAS VposGet(IntT r, IntT c); #define VposGet(r,c) ((c)=MsInt(VcurGt_()); (r)=((c)>>8); (c)&=0xFF) ARGUMENTS r - Row c - Column RETURNS The current cursor location SEE ALSO VcurGet (Page 99) WcurGet (Page 69) WposGet (Page 72) TesSeRact CXL V5.5 Documentation Page 103 --------------------------------------------------------------------------- Attribute Control --------------------------------------------------------------------------- NAME.........VatrInv DESCRIPTION Returns the inverse of the given text attribute (See Appendix A). PROTOTYPE....IntT PAS VatrInv(IntT a); ARGUMENTS a - Attribute (See Appendix A) to Invert RETURNS Inverted Attribute EXAMPLE FILE: MNU\MNUEND.C.......Line: 50 FILE: ENT\ENTDEF.C.......Line: 35 FILE: SEL\_SELECT.C......Line: 88 FILE: WIN\WPUTS.C........Line: 117 Page 104 TesSeRact CXL V5.5 Documentation --------------------------------------------------------------------------- NAME.........VatrMap DESCRIPTION Translates a color text attribute (See Appendix A) into its approximate monochrome equivalent. All of CXL's video functions automatically call this, so you would only need to call this for your own functions. PROTOTYPE....IntT CTYP VatrMap(IntT a); ARGUMENTS a - Attribute (See Appendix A) to translate RETURNS Monochrome Equavalent EXAMPLE FILE: MNU\ITMTXT.C.......Line: 28 FILE: MNU\MNUBEG.C.......Line: 56, 57 FILE: MNU\MNUEND.C.......Line: 47, 48, 49 FILE: ENT\ENTDEF.C.......Line: 34 FILE: HLP\HLPDEF.C.......Line: 59, 60, 61, 62 FILE: WIN\WCHGATR.C......Line: 30, 31 FILE: WIN\WOPEN.C........Line: 52, 53 FILE: WIN\WPRTC.C........Line: 32 FILE: WIN\WSETTXT.C......Line: 22 FILE: WIN\WSHADOW.C......Line: 38 FILE: WIN\WTITLE.C.......Line: 31 FILE: WIN\WWPRINTS.C.....Line: 59 FILE: DSP\VATRSET.C......Line: 24 FILE: DSP\VCLEAR.C.......Line: 27 FILE: DSP\VDRWBOX.C......Line: 28 FILE: DSP\VFILBOX.C......Line: 27 FILE: DSP\VPRINTC.C......Line: 24 FILE: DSP\VPRINTS.C......Line: 24 FILE: HDW\FMTFLIP.C......Line: 28, 32 TesSeRact CXL V5.5 Documentation Page 105 --------------------------------------------------------------------------- NAME.........VatrRev DESCRIPTION Reverses the attribute (See Appendix A) of the character under the current cursor position, and continues for the specified number of characters. Uses video BIOS calls. PROTOTYPE....VOID CTYP VatrRev(IntT n); ARGUMENTS n - Count of Characters to Reverse RETURNS......None --------------------------------------------------------------------------- NAME.........VatrSet DESCRIPTION Sets the attribute (See Appendix A) of the character under the current cursor location, and continues for the specified number of characters. Uses video BIOS calls. PROTOTYPE....VOID CTYP VatrSet(IntT a, IntT n); ARGUMENTS a - Attribute (See Appendix A) to set n - Count of Characters to Set RETURNS......None --------------------------------------------------------------------------- NAME.........VatrTxt DESCRIPTION Converts an attribute (See Appendix A) to it's text-based equivalent. PROTOTYPE....ChrP CTYP VatrTxt(IntT a); ARGUMENTS a - Attribute (See Appendix A) RETURNS Static string with color text. EXAMPLE FILE: TCXLDEMO.C.........Line: 1096 Page 106 TesSeRact CXL V5.5 Documentation --------------------------------------------------------------------------- NAME.........Vattrib Macro DESCRIPTION Creates a text attribute (See Appendix A). It is usually much easier to create a text attribute using the attribute identifiers listed in Appendix A, but this provides an alternate method. PROTOTYPE....IntT Vattrib(IntT f, IntT b, IntT i, IntT h); #define Vattrib(f,b,i,h) ((b<<4)|(f)|(i<<3)|(h<<7)) ARGUMENTS f - Foreground Color b - Background Color i - Intensity h - Blink Bit RETURNS The new attribute code --------------------------------------------------------------------------- Video-Disk Routines --------------------------------------------------------------------------- NAME.........VsavBox Macro .............VsavBx_ DESCRIPTION Copies an area of the screen to a disk file. PROTOTYPE....IntT VsavBox(VposT s, VposT e, ChrP f); .............IntT CTYP VsavBx_(WrdT s, WrdT e, ChrP f); #define VsavBox(s,e,f) (VsavBx_(VposW(s),VposW(e),(f))) ARGUMENTS s - Start Position e - End Position f - Filename to use RETURNS Nonzero on error TesSeRact CXL V5.5 Documentation Page 107 --------------------------------------------------------------------------- NAME.........VlodBox DESCRIPTION Copies a previously saved window disk file to the screen. PROTOTYPE....IntT CTYP VlodBox(ChrP f); ARGUMENTS f - Filename RETURNS Nonzero on error --------------------------------------------------------------------------- NAME.........VsavScr DESCRIPTION Copies the current screen to a disk file. PROTOTYPE....IntT CTYP VsavScr(ChrP f) ARGUMENTS f - Filename RETURNS Nonzero on error --------------------------------------------------------------------------- NAME.........VlodScr DESCRIPTION Restores a previewsly saved screen from disk. PROTOTYPE....IntT CTYP VlodScr(ChrP f); ARGUMENTS f - Filename RETURNS Nonzero on error Page 108 TesSeRact CXL V5.5 Documentation --------------------------------------------------------------------------- Input System Active Window Input --------------------------------------------------------------------------- NAME.........KwGetCf DESCRIPTION Gets a character from the keyboard. Allows input only of characters listed in the string of valid characters. Entered characters will be echoed to the active window using the current text attribute (See Appendix A). Cursor position is updated. Escape checking is provided by default, but can be turned off with the WsetEsc() function. PROTOTYPE....IntT CTYP KwGetCf(ChrP v, IntT d); ARGUMENTS v - Valid Character String d - Default Selection RETURNS The ASCII value of the key pressed, or a zero if an error occurred. On error, TcxlErr Returns: W_NOACTIVE - No Active Window W_ESCPRESS - The [Esc] Key Was Pressed SEE ALSO KvGetCf (Page 115) EXAMPLE FILE: INP\KWGETYN.C......Line: 27 TesSeRact CXL V5.5 Documentation Page 109 --------------------------------------------------------------------------- NAME.........KwGetCh DESCRIPTION Gets a character from the keyboard. Entered character will be echoed to the active window using the window's current text attribute (See Appendix A). Cursor position is updated. PROTOTYPE....IntT CTYP KwGetCh(NOARG); ARGUMENTS....None RETURNS The ASCII value of the key pressed, or a zero if an error occurred. On error, TcxlErr Returns: W_NOACTIVE - No Active Window SEE ALSO KvGetCh (Page 115) EXAMPLE FILE: INP\KWGETST.C......Line: 28 Page 110 TesSeRact CXL V5.5 Documentation --------------------------------------------------------------------------- NAME.........KwGetFmt DESCRIPTION Inputs a formatted string from the keyboard. Characters will be echoed to the active window in the current text attribute (See Appendix A). Cursor position is updated. Escape checking is provided by default, but can be turned off with the WsetEsc() function. This function provides an extremely powerful method of accept single-line input from the user. You can limit input characters to certain characters of a type, such as numbers, insert strings in between typed in characters, create custom prompts, disable [Enter] until the field is filled, and more. PROTOTYPE....IntT CTYP KwGetFmt(ChrP s, ChrP f); ARGUMENTS s - Buffer To Receive Input String f - Format String (See Appendix E) RETURNS ERR_NUL - No Error ERR_ARG - Argument Failure TcxlErr Returns: W_NOACTIVE - No Active Window W_ESCPRESS - The [Esc] Key Was Pressed W_INVFORMT - Invalid Format String SEE ALSO KvGetFmt (Page 116) EXAMPLE FILE: TCXLDEMO.C.........Line: 1166, 1171, 1176 TesSeRact CXL V5.5 Documentation Page 111 --------------------------------------------------------------------------- NAME.........KwGetSn DESCRIPTION Gets a string from the keyboard, limiting the number of characters input to the specified length. Characters will be echoed to the active window in the current text attribute (See Appendix A). Cursor position is updated. Escape checking is provided by default, but can be turned off with the WsetEsc() function. PROTOTYPE....IntT CTYP KwGetSn(ChrP s, IntT m); ARGUMENTS s - Buffer To Receive Input String m - Maximum Length of Input String RETURNS ERR_NUL - No Error ERR_ARG - Argument Failure TcxlErr Returns: W_NOACTIVE - No Active Window W_ESCPRESS - The [Esc] Key Was Pressed SEE ALSO KvGetSn (Page 116) --------------------------------------------------------------------------- NAME.........KwGetSt DESCRIPTION Gets a string from the keyboard. Characters will be echoed to the active window in the current text attribute (See Appendix A). Cursor position is updated. Escape checking is provided by default, but can be turned off with the WsetEsc() function. PROTOTYPE....IntT CTYP KwGetSt(ChrP ps); ARGUMENTS ps - Buffer To Receive Input String RETURNS ERR_NUL - No Error ERR_ARG - Argument Failure TcxlErr Returns: W_NOACTIVE - No Active Window W_ESCPRESS - The [Esc] Key Was Pressed SEE ALSO KvGetSt (Page 117) EXAMPLE FILE: INP\KWSCANF.C......Line: 38 Page 112 TesSeRact CXL V5.5 Documentation --------------------------------------------------------------------------- NAME.........KwGetYn DESCRIPTION Gets a [Y]es or [N]o response from the keyboard. After the user presses [Enter], "Y", "N", "y", or "n", the text "Yes" or "No" will be displayed in the active window in the current text attribute (See Appendix A). Cursor position is updated. Escape checking is provided by default, but can be turned off with the WsetEsc() function. PROTOTYPE....IntT CTYP KwGetYn(IntT cd); ARGUMENTS cd - The Default Value (0=No, 1=Yes) RETURNS 'Y' if Yes was selected, an 'N' if No was selected, or a '\0' if the user pressed [Esc] and Escape checking was on. SEE ALSO KvGetYn (Page 117) EXAMPLE FILE: TCXLDEMO.C.........Line: 1038, 1048, 1383, 1486 TesSeRact CXL V5.5 Documentation Page 113 --------------------------------------------------------------------------- NAME.........KwScanf DESCRIPTION !!!!NOTE!!!! This function is only available with the Turbo C versions of TCXL. Neither Microsoft C nor Zortech C/C++ provide the necessary vsscanf() function needed to implement this procedure. Inputs a formatted string from the keyboard. Characters will be echoed to the active window in the current text attribute (See Appendix A). Cursor position is updated. Escape checking is provided by default, but can be turned off with the WsetEsc() function. This function works identical to the C library routine scanf(), except that input is done to the default window. PROTOTYPE....IntT CDC KwScanf(ChrP fs, ...); ARGUMENTS fs - Format String (see your compiler's documentation) ... - Additional Arguments RETURNS ERR_NUL - No Error ERR_ARG - Argument Failure TcxlErr Returns: W_NOACTIVE - No Active Window W_ESCPRESS - The [Esc] Key Was Pressed SEE ALSO KvScanf (Page 118) Page 114 TesSeRact CXL V5.5 Documentation --------------------------------------------------------------------------- Default Video Input --------------------------------------------------------------------------- NAME.........KvGetCf DESCRIPTION Gets a character from the keyboard. Allows input only of characters listed in the string of valid characters. Entered characters will be echoed to the Standard Output device. Escape checking is always on. PROTOTYPE....IntT CTYP KvGetCf(ChrP v, IntT d); ARGUMENTS v - Valid Character String d - Default Selection RETURNS The ASCII value of the key pressed, or a zero if [Esc] is pressed. SEE ALSO KwGetCf (Page 109) EXAMPLE FILE: INP\KVGETYN.C......Line: 23 --------------------------------------------------------------------------- NAME.........KvGetCh DESCRIPTION Gets a character from the keyboard. Entered characters will be echoed to Standard Output Device. PROTOTYPE....IntT CTYP KvGetCh(NOARG); ARGUMENTS....None RETURNS The ASCII value of the key pressed. SEE ALSO KwGetCh (Page 110) EXAMPLE FILE: INP\KVGETST.C......Line: 26 TesSeRact CXL V5.5 Documentation Page 115 --------------------------------------------------------------------------- NAME.........KvGetFmt DESCRIPTION Inputs a formatted string from the keyboard. Characters will be echoed to the Standard Output Device. This function provides an extremely powerful method of accept single-line input from the user. You can limit input characters to certain characters of a type, such as numbers, insert strings in between typed in characters, create custom prompts, disable [Enter] until the field is filled, and more. PROTOTYPE....IntT CTYP KvGetFmt(ChrP s, ChrP f); ARGUMENTS s - Buffer To Receive Input String f - Format String (See Appendix E) RETURNS Zero on Success, -1 on invalid format, or 1 if [Esc] was pressed. SEE ALSO KwGetFmt (Page 111) --------------------------------------------------------------------------- NAME.........KvGetSn DESCRIPTION Gets a string from the keyboard, limiting the number of characters input to the specified length. Characters will be echoed to the Standard Output Device. PROTOTYPE....IntT CTYP KvGetSn(ChrP s, IntT m); ARGUMENTS s - Buffer To Receive Input String m - Maximum Length of Input String RETURNS Zero for success, 1 if ESC is pressed. SEE ALSO KwGetSn (Page 112) Page 116 TesSeRact CXL V5.5 Documentation --------------------------------------------------------------------------- NAME.........KvGetSt DESCRIPTION Gets a string from the keyboard. Characters will be echoed to the Standard Output Device. PROTOTYPE....VOID CTYP KvGetSt(ChrP ps); ARGUMENTS ps - Buffer To Receive Input String RETURNS......None SEE ALSO KwGetSt (Page 112) EXAMPLE FILE: INP\KVSCANF.C......Line: 34 --------------------------------------------------------------------------- NAME.........KvGetYn DESCRIPTION Gets a [Y]es or [N]o response from the keyboard. After the user presses [Enter], "Y", "N", "y", or "n", the text "Yes" or "No" will be displayed to the Standard Output Device. PROTOTYPE....IntT CTYP KvGetYn(IntT cd); ARGUMENTS cd - The Default Value (0=No, 1=Yes) RETURNS 'Y' if Yes was selected, an 'N' if No was selected. SEE ALSO KwGetYn (Page 113) TesSeRact CXL V5.5 Documentation Page 117 --------------------------------------------------------------------------- NAME.........KvScanf DESCRIPTION !!!!NOTE!!!! This function is only available with the Turbo C versions of TCXL. Neither Microsoft C nor Zortech C/C++ provide the necessary vsscanf() function needed to implement this procedure. Inputs a formatted string from the keyboard. Characters will be echoed to Standard Output Device. This function works identical to the C library routine scanf(). PROTOTYPE....VOID CDC KvScanf(ChrP fs, ...); ARGUMENTS fs - Format String (see your compiler's documentation) ... - Additional Arguments RETURNS......None SEE ALSO KwScanf (Page 114) --------------------------------------------------------------------------- Asynchronous Input --------------------------------------------------------------------------- NAME.........KbndChg DESCRIPTION The KbndSet() (Page 120) function builds a stacked list in memory that contains each defined keycode binding. This function allows you to maintain multiple key binding lists and change back and forth between them. KbndChg() provides painless switching between various Key Binding lists. PROTOTYPE....KbndP CTYP KbndChg(KbndP l); ARGUMENTS l - New Key Binding RETURNS Old Key Binding EXAMPLE FILE: HLP\HLPSHOW.C......Line: 81, 144 FILE: TCXLDEMO.C.........Line: 1375, 1387 Page 118 TesSeRact CXL V5.5 Documentation --------------------------------------------------------------------------- NAME.........KbndClr DESCRIPTION Removes bindings for the passed keycode. PROTOTYPE....IntT CTYP KbndClr(KeyT k); ARGUMENTS k - Keycode to unbind. RETURNS 0 on success, 1 if not found. EXAMPLE FILE: HLP\HLPSHOW.C......Line: 192, 194, 195, 313, 333, 342 FILE: INP\KBNDSET.C......Line: 26 --------------------------------------------------------------------------- NAME.........KbndFre DESCRIPTION Free all key bindings from memory. PROTOTYPE....VOID CTYP KbndFre(NOARG); ARGUMENTS....None RETURNS......None EXAMPLE FILE: HLP\HLPSHOW.C......Line: 143 --------------------------------------------------------------------------- NAME.........KbndIdle Macro DESCRIPTION This binds the passed function to the keyboard idle loop. During KeyGetc() processing, if no input is available, this routine is called. !!! WARNING !!! Do not attempt to update the display or windows every time this routine is called. Doing so will cause a mouse cursor to "flicker". Only update the display when needed. PROTOTYPE....VOID KbndIdle(VfvCP a); #define KbndIdle(a) (KctlIdl = a) ARGUMENTS a - Idle Function RETURNS......None EXAMPLE FILE: TCXLDEMO.C.........Line: 889, 983 TesSeRact CXL V5.5 Documentation Page 119 --------------------------------------------------------------------------- NAME.........KbndSet DESCRIPTION Binds a keypress to a function call. Works by intercepting any calls to TCXL input functions. During Input processing, the input function will determine if a key-binding exists; if so, the bound routine will be executed, and the appropriate key will be returned to the calling function. If no binding exists, the Input System will continue processing as normal. PROTOTYPE....IntT CTYP KbndSet(KeyT k, VfvCP f, KeyT r); ARGUMENTS k - Keycode to Bind. f - Function to Call When Key is Pressed. r - Keycode to Return to Caller After 'f' is Completed. If zero, then nothing will be returned, and execution will resume as if no key had been pressed. RETURNS 0 on success, 1 on allocation failure. EXAMPLE FILE: HLP\HLPSHOW.C......Line: 184, 186, 187 FILE: TCXLDEMO.C.........Line: 748, 2311 --------------------------------------------------------------------------- Input With No Echo --------------------------------------------------------------------------- NAME.........KeyClear Macro DESCRIPTION Clears the keyboard buffer. PROTOTYPE....VOID KeyClear(NOARG); #define KeyClear() while(_KeyHit()) _KeyGet() ARGUMENTS....None RETURNS......None EXAMPLE FILE: INP\KEYTIME.C......Line: 27 FILE: TCXLDEMO.C.........Line: 1037, 1047, 1144, 1182, 1231, 1381, 1485 Page 120 TesSeRact CXL V5.5 Documentation --------------------------------------------------------------------------- NAME.........KeyEvent DESCRIPTION Determines if a key or mouse button has been pressed. If no events are pending, calls the Idle function (if defined) as set by KbndIdle() (Page 119) PROTOTYPE....IntT CTYP KeyEvent(NOARG); ARGUMENTS....None RETURNS TRUE if event pending, FALSE otherwise. EXAMPLE FILE: INP\KEYTIME.C......Line: 30 --------------------------------------------------------------------------- NAME.........KeyGetc DESCRIPTION Gets a keycode (ASCII/ScanCode) from the keyboard, mouse, and internal queue. PROTOTYPE....KeyT CTYP KeyGetc(NOARG); ARGUMENTS....None RETURNS Keycode of the event. EXAMPLE FILE: MNU\MNUSHOW.C......Line: 121 FILE: ENT\ENTSHOW.C......Line: 118 FILE: HLP\HLPSHOW.C......Line: 228 FILE: SEL\SELATTR.C......Line: 53 FILE: SEL\_SELECT.C......Line: 133 FILE: INP\KEYTIME.C......Line: 35 FILE: INP\KVGETCF.C......Line: 26 FILE: INP\KVGETCH.C......Line: 23 FILE: INP\KVGETFMT.C.....Line: 54 FILE: INP\KVGETSN.C......Line: 27 FILE: INP\KWGETCF.C......Line: 32 FILE: INP\KWGETCH.C......Line: 28 FILE: INP\KWGETFMT.C.....Line: 60 FILE: INP\KWGETSN.C......Line: 30 FILE: TCXLDEMO.C.........Line: 1733 TesSeRact CXL V5.5 Documentation Page 121 --------------------------------------------------------------------------- NAME.........KeyPeek Macro DESCRIPTION Looks at the next keystroke in the BIOS keyboard buffer, and returns its ASCII/ScanCode value. PROTOTYPE....KeyT KeyPeek(NOARG); #define KeyPeek() (_KeyHit()) ARGUMENTS....None RETURNS KeyCode of the next key in buffer, or zero if nothing available. --------------------------------------------------------------------------- NAME.........KeyStat Macro DESCRIPTION Returns the status of the keyboard control keys. PROTOTYPE....WrdT KeyStat(NOARG); #define KeyStat() (_KeySta()) ARGUMENTS....None RETURNS Status Word of the Keyboard Flag --------------------------------------------------------------------------- NAME.........KeyTime DESCRIPTION Flushes the input buffers, and waits for a keyboard/mouse event. This function will time out and return after the passed number of timer ticks. PROTOTYPE....KeyT CTYP KeyTime(IntT t); ARGUMENTS t - Timer Ticks to Wait Before Timing Out, or -1 to never time out. RETURNS KeyCode of the event, or -1 if timed out. EXAMPLE FILE: TCXLDEMO.C.........Line: 1137, 1249, 1613, 1624, 2351 Page 122 TesSeRact CXL V5.5 Documentation --------------------------------------------------------------------------- NAME.........KeyWait Macro DESCRIPTION Flushes the input buffers, and waits for a keyboard/mouse event. PROTOTYPE....KeyT KeyWait(NOARG); #define KeyWait() (KeyTime(-1)) ARGUMENTS....None RETURNS KeyCode of the event. EXAMPLE FILE: HLP\HLPSHOW.C......Line: 116, 324 FILE: WIN\WPERROR.C......Line: 50 FILE: TCXLDEMO.C.........Line: 1131, 2227, 2348 --------------------------------------------------------------------------- Strings System Trimming --------------------------------------------------------------------------- NAME..........strbtrim Macro DESCRIPTION Trims both leading and trailing spaces off of a string. PROTOTYPE....ChrP strbtrim(ChrP s); #define strbtrim(s) strtrim(strltrim(s)) ARGUMENTS s - String to Modify RETURNS The address of the input string. EXAMPLE FILE: TCXLDEMO.C.........Line: 1816 TesSeRact CXL V5.5 Documentation Page 123 --------------------------------------------------------------------------- NAME.........strltrim DESCRIPTION Trims the leading spaces off of a string. PROTOTYPE....ChrP CTYP strltrim(ChrP s); ARGUMENTS s - String to Modify RETURNS Address of the modified string. EXAMPLE FILE: TCXLDEMO.C.........Line: 1483, 1808 --------------------------------------------------------------------------- NAME.........strrtrim Macro DESCRIPTION Trims trailing spaces off of a string. PROTOTYPE....ChrP strrtrim(ChrP s); #define strrtrim(s) strtrim(s) ARGUMENTS s - String to Modify RETURNS Address of the modified string EXAMPLE FILE: TCXLDEMO.C.........Line: 1812 --------------------------------------------------------------------------- NAME.........strtrim DESCRIPTION Trims trailing spaces off of a string. PROTOTYPE....ChrP CTYP strtrim(ChrP s); ARGUMENTS s - String to Modify RETURNS Address of the modified string EXAMPLE FILE: ENT\ENTSHOW.C......Line: 166 FILE: TCXLDEMO.C.........Line: 1474, 1475, 1476, 1477, 1478, 1479, 1480, 1481, 1482, 1812 Page 124 TesSeRact CXL V5.5 Documentation --------------------------------------------------------------------------- Changing --------------------------------------------------------------------------- NAME.........strchg DESCRIPTION Finds all letters in a string matching one character and replaces them with another. PROTOTYPE....IntT CTYP strchg(ChrP s, IntT a, IntT b); ARGUMENTS s - String to Search a - Character to Search For b - Character to Replace With RETURNS The number of matches found EXAMPLE FILE: HLP\HLPSHOW.C......Line: 90, 91, 92 FILE: TCXLDEMO.C.........Line: 1832 --------------------------------------------------------------------------- NAME.........strichg DESCRIPTION Finds all letters in a string matching one character and replaces them with another. Ignores case of letters. PROTOTYPE....IntT CTYP strichg(ChrP s, IntT a, IntT b); ARGUMENTS s - String to Search a - Character to Search For b - Character to Replace With RETURNS The number of matches found EXAMPLE FILE: TCXLDEMO.C.........Line: 1836 TesSeRact CXL V5.5 Documentation Page 125 --------------------------------------------------------------------------- NAME.........strischg DESCRIPTION Changes all occurrences of one string to another. Ignores case of letters. PROTOTYPE....ChrP CTYP strischg(ChrP s, ChrP a, ChrP b); ARGUMENTS s - String to Search a - String to Search For b - String To Replace Found Strings With RETURNS The address of the modified string, or NULL if no matches were found. EXAMPLE FILE: STR\STRISCHG.C.....Line: 21 FILE: TCXLDEMO.C.........Line: 1840 --------------------------------------------------------------------------- NAME.........strschg DESCRIPTION Changes all occurrences of one string to another. PROTOTYPE....ChrP CTYP strschg(ChrP s, ChrP a, ChrP b); ARGUMENTS s - String to search a - String to search for r - String to replace RETURNS The address of the modified string, or NULL if no matches were found. EXAMPLE FILE: TCXLDEMO.C.........Line: 1844 Page 126 TesSeRact CXL V5.5 Documentation --------------------------------------------------------------------------- Checksum --------------------------------------------------------------------------- NAME.........strchksum DESCRIPTION Returns the checksum of a string. The checksum is calculated by adding up the ASCII values of each character in the string. PROTOTYPE....DwdT CTYP strchksum(ChrP s); ARGUMENTS s - String to Checksum RETURNS The checksum of the input string EXAMPLE FILE: TCXLDEMO.C.........Line: 1856 --------------------------------------------------------------------------- NAME.........strichksum DESCRIPTION Returns the checksum of a string. The checksum is calculated by adding up the ASCII values of each character in the string. All lowercase letters will be counted as uppercase. PROTOTYPE....DwdT CTYP strichksum(ChrP s); ARGUMENTS s - String to Checksum RETURNS The checksum of the input string. EXAMPLE FILE: TCXLDEMO.C.........Line: 1856 TesSeRact CXL V5.5 Documentation Page 127 --------------------------------------------------------------------------- Delete/Insert --------------------------------------------------------------------------- NAME.........strdel DESCRIPTION Deletes a substring from within a string. PROTOTYPE....ChrP CTYP strdel(ChrP a, ChrP s); ARGUMENTS a - Substring to Delete s - String to Delete From RETURNS Address of the modified string, or NULL if substring not found. EXAMPLE FILE: STR\STRDELA.C......Line: 26 FILE: STR\STRSREP.C......Line: 25 FILE: TCXLDEMO.C.........Line: 1868 --------------------------------------------------------------------------- NAME.........strdela DESCRIPTION Deletes all occurrences of a substring from within a string. PROTOTYPE....ChrP CTYP strdela(ChrP a, ChrP s); ARGUMENTS a - Substring to Delete s - String to Delete From RETURNS Address of the modified string, or NULL if substring not found. EXAMPLE FILE: TCXLDEMO.C.........Line: 1872 Page 128 TesSeRact CXL V5.5 Documentation --------------------------------------------------------------------------- NAME.........stridel DESCRIPTION Deletes a substring from within a string. Ignores case of letters. PROTOTYPE....ChrP CTYP stridel(ChrP a, ChrP b); ARGUMENTS a - Substring to Delete s - String to Delete From RETURNS Address of the modified string, or NULL if substring not found. EXAMPLE FILE: STR\STRIDELA.C.....Line: 26 FILE: STR\STRISREP.C.....Line: 26 FILE: TCXLDEMO.C.........Line: 1876 --------------------------------------------------------------------------- NAME.........stridela DESCRIPTION Deletes all occurrences of a substring from within a string. Ignores case of letters. PROTOTYPE....ChrP CTYP stridela(ChrP a, ChrP b); ARGUMENTS a - Substring to Delete s - String to Delete From RETURNS Address of the modified string, or NULL if substring not found. EXAMPLE FILE: TCXLDEMO.C.........Line: 1880 TesSeRact CXL V5.5 Documentation Page 129 --------------------------------------------------------------------------- NAME.........strins DESCRIPTION Inserts one string into another. Make sure the receiving buffer is large enough to hold the combined new string! PROTOTYPE....ChrP CTYP strins(ChrP a, ChrP s, IntT p); ARGUMENTS a - String to Insert s - String to Receive Insertion p - Starting position RETURNS The address of the modified string. EXAMPLE FILE: STR\STRISREP.C.....Line: 28 FILE: STR\STRSREP.C......Line: 27 FILE: TCXLDEMO.C.........Line: 1884 --------------------------------------------------------------------------- Inclusion --------------------------------------------------------------------------- NAME.........strinc DESCRIPTION Determines if and where one string is included within another. PROTOTYPE....ChrP CTYP strinc(ChrP a, ChrP s); ARGUMENTS a - String to search for s - String to search RETURNS A pointer to the location in 's' that contains 'a', or NULL if not found. EXAMPLE FILE: STR\STRDEL.C.......Line: 24 FILE: STR\STRDELA.C......Line: 25 FILE: STR\STRSOCC.C......Line: 27, 31 FILE: STR\STRSREP.C......Line: 24 FILE: TCXLDEMO.C.........Line: 1897 Page 130 TesSeRact CXL V5.5 Documentation --------------------------------------------------------------------------- NAME.........striinc DESCRIPTION Determines if and where one string is included within another. Ignores case of letters. PROTOTYPE....ChrP CTYP striinc(ChrP a, ChrP s); ARGUMENTS a - String to search for s - String to search RETURNS A pointer to the location in 's' that contains 'a', or NULL if not found. EXAMPLE FILE: STR\STRIDEL.C......Line: 24 FILE: STR\STRIDELA.C.....Line: 25 FILE: STR\STRISOCC.C.....Line: 28, 32 FILE: STR\STRISREP.C.....Line: 25 FILE: TCXLDEMO.C.........Line: 1900 --------------------------------------------------------------------------- NAME.........strocc DESCRIPTION Counts occurrences of a character in a string. PROTOTYPE....IntT CTYP strocc(ChrP s, IntT c); ARGUMENTS s - String to Search c - Character to search for RETURNS The number of occurrences of the character in the string. EXAMPLE FILE: ENT\ENTSHOW.C......Line: 427, 432, 443, 448, 481, 483, 637, 639, 665, 667 FILE: TCXLDEMO.C.........Line: 1903 TesSeRact CXL V5.5 Documentation Page 131 --------------------------------------------------------------------------- NAME.........striocc DESCRIPTION Returns the number of occurrences of a character in a string. Ignores case of letters. PROTOTYPE....IntT CTYP striocc(ChrP s, IntT c); ARGUMENTS s - String to Search c - Character to search for RETURNS The number of occurrences of the character in the string. EXAMPLE FILE: TCXLDEMO.C.........Line: 1906 --------------------------------------------------------------------------- NAME.........strsocc DESCRIPTION Counts the occurrences of one string within another. PROTOTYPE....IntT CTYP strsocc(ChrP a, ChrP s); ARGUMENTS a - String to Search For s - String to Search RETURNS The number of times that string 'a' occurs in string 's'. EXAMPLE FILE: TCXLDEMO.C.........Line: 1909 Page 132 TesSeRact CXL V5.5 Documentation --------------------------------------------------------------------------- NAME.........strisocc DESCRIPTION Counts occurrences of one string within another. Ignores case of letters. PROTOTYPE....IntT CTYP strisocc(ChrP a, ChrP s); ARGUMENTS a - String to search for s - String to search RETURNS The number of times that string 'a' occurs in string 's'. EXAMPLE FILE: TCXLDEMO.C.........Line: 1911 --------------------------------------------------------------------------- Replacement --------------------------------------------------------------------------- NAME.........strsrep DESCRIPTION Searches for, and replaces one string within another. PROTOTYPE....ChrP CTYP strsrep(ChrP s, ChrP a, ChrP b); ARGUMENTS s - String to Search a - String to Search For b - String to Replace With RETURNS The address of the modified string, or NULL if the search string wasn't found. EXAMPLE FILE: STR\STRSCHG.C......Line: 29 FILE: TCXLDEMO.C.........Line: 1923 TesSeRact CXL V5.5 Documentation Page 133 --------------------------------------------------------------------------- NAME.........strisrep DESCRIPTION Searches for, *and replaces one string within another. Ignores case of letters. PROTOTYPE....ChrP CTYP strisrep(ChrP s, ChrP a, ChrP b); ARGUMENTS s - String to search a - String to search for r - String to replace RETURNS The address of the modified string, or NULL if the search string wasn't found. EXAMPLE FILE: STR\STRISCHG.C.....Line: 29 FILE: TCXLDEMO.C.........Line: 1927 --------------------------------------------------------------------------- Substrings --------------------------------------------------------------------------- NAME.........strmid DESCRIPTION Takes a section from input string starting at given position and taking the given amount of characters creating a new string. PROTOTYPE....ChrP CTYP strmid(ChrP s, IntT p, IntT n); ARGUMENTS s - Input String p - Position to start copying n - Number of characters to copy RETURNS Address of the newly created string or a NULL if a memory allocation error occurred. Be sure to free() the string when or if you are finished with it. EXAMPLE FILE: TCXLDEMO.C.........Line: 1940 Page 134 TesSeRact CXL V5.5 Documentation --------------------------------------------------------------------------- NAME.........strleft Macro DESCRIPTION Takes a specified portion of a string from its left and creates a new string. PROTOTYPE....ChrP strleft(ChrP s, IntT n); #define strleft(s,n) strmid(s,0,n) ARGUMENTS s - Input String n - Number of Character to Copy RETURNS Address of the newly created string or a NULL if a memory allocation error occurred. Be sure to free() this string if or when you don't need it anymore. EXAMPLE FILE: TCXLDEMO.C.........Line: 1943 --------------------------------------------------------------------------- NAME.........strright Macro DESCRIPTION Takes a specifed portion from the right side of a string creating a new string. PROTOTYPE....ChrP strright(ChrP s, IntT n); #define strright(s,n) strmid(s,strlen(s)-n,n) ARGUMENTS s - Input String n - Number of Characters to Copy RETURNS Address of the newly created string or a NULL if a memory allocation error occurred. Be sure to free() the string when or if you are finished with it. EXAMPLE FILE: TCXLDEMO.C.........Line: 1946 TesSeRact CXL V5.5 Documentation Page 135 --------------------------------------------------------------------------- Justification --------------------------------------------------------------------------- NAME.........strljust DESCRIPTION Left justifies a text string. PROTOTYPE....ChrP CTYP strljust(ChrP s); ARGUMENTS s - String to Justify RETURNS Address of the modified string. EXAMPLE FILE: ENT\ENTSHOW.C......Line: 299 FILE: TCXLDEMO.C.........Line: 1960 --------------------------------------------------------------------------- NAME.........strrjust DESCRIPTION Right justifies a text string. PROTOTYPE....ChrP CTYP strrjust(ChrP s); ARGUMENTS s - String to Justify RETURNS Address of modified string. EXAMPLE FILE: ENT\ENTSHOW.C......Line: 301 FILE: HDW\CVTIC.C........Line: 32 FILE: TCXLDEMO.C.........Line: 1964 Page 136 TesSeRact CXL V5.5 Documentation --------------------------------------------------------------------------- NAME.........strrol DESCRIPTION Rotates a string specified number of characters left. The rotated characters wrap around to the right side of the string. PROTOTYPE....ChrP CTYP strrol(ChrP s, IntT n); ARGUMENTS s - String to Rotate n - Count to Rotate RETURNS Address of the modified string EXAMPLE FILE: TCXLDEMO.C.........Line: 1968 --------------------------------------------------------------------------- NAME.........strror DESCRIPTION Rotates a string specified number of characters right. The rotated characters wrap around to the left side of the string. PROTOTYPE....ChrP CTYP strror(ChrP s, IntT n); ARGUMENTS s - String to Rotate n - Count to Rotate RETURNS Address of the modified string EXAMPLE FILE: TCXLDEMO.C.........Line: 1972 TesSeRact CXL V5.5 Documentation Page 137 --------------------------------------------------------------------------- NAME.........strshl DESCRIPTION Shifts a string a specified number of characters left. Characters that shift past the beginning of the string "drop off" and spaces are added to the right of the string. PROTOTYPE....ChrP CTYP strshl(ChrP s, IntT n); ARGUMENTS s - String to Shift n - Character Count to Shift RETURNS Address of the Modified String EXAMPLE FILE: ENT\ENTSHOW.C......Line: 400, 453 FILE: TCXLDEMO.C.........Line: 1976 --------------------------------------------------------------------------- NAME.........strshr DESCRIPTION Shifts a string a specified number of characters right. Characters that shift past the end of the string "drop off" and spaces are added to the left of the string. PROTOTYPE....ChrP CTYP strshr(ChrP s, IntT n); ARGUMENTS s - String to Shift n - Character Count to Shift RETURNS Address of the Modified String EXAMPLE FILE: ENT\ENTSHOW.C......Line: 500 FILE: TCXLDEMO.C.........Line: 1980 Page 138 TesSeRact CXL V5.5 Documentation --------------------------------------------------------------------------- Matching --------------------------------------------------------------------------- NAME.........strbmatch DESCRIPTION Returns the best match of a string in an array of strings. PROTOTYPE....ChrP CTYP strbmatch(ChrP s, ChrP a[]); ARGUMENTS s - String to Match a - Array of pointers. The last pointer in the array must be NULL. RETURNS Address of the string in the array that best matched the given string. EXAMPLE FILE: TCXLDEMO.C.........Line: 345 FILE: TCXLDEMO.C.........Line: 1796 --------------------------------------------------------------------------- NAME.........strmatch DESCRIPTION Compares 2 strings and returns a match score. PROTOTYPE....IntT CTYP strmatch(ChrP a, ChrP b); ARGUMENTS a - First String b - Second String RETURNS A match score. The higher the score, the better they match. The maximum possible score is strlen(a) + strlen(b). EXAMPLE FILE: STR\STRBMATC.C.....Line: 26 FILE: STR\STRBMATC.C.....Line: 28 FILE: TCXLDEMO.C.........Line: 1792 TesSeRact CXL V5.5 Documentation Page 139 --------------------------------------------------------------------------- Miscellaneous --------------------------------------------------------------------------- NAME.........strblank DESCRIPTION Determines if a given string is blank (whitespace). PROTOTYPE....IntT CTYP strblank(ChrP s); ARGUMENTS s - String to Check RETURNS TRUE if string is blank, FALSE otherwise EXAMPLE FILE: ENT\ENTSHOW.C......Line: 387, 516, 530, 798 FILE: TCXLDEMO.C.........Line: 1348, 1647, 1995, 1996 --------------------------------------------------------------------------- NAME.........strcode DESCRIPTION Encodes/decodes a string. Call this function to encode a string, then call again using the same key to decode it. When reading or writing from a disk file, be sure to open the file in binary mode. PROTOTYPE....ChrP CTYP strcode(ChrP s, ChrP k); ARGUMENTS s - String to encode k - Key String RETURNS The address of the input string EXAMPLE FILE: TCXLDEMO.C.........Line: 1999, 2001 Page 140 TesSeRact CXL V5.5 Documentation --------------------------------------------------------------------------- NAME.........strsetsz DESCRIPTION Adjusts the length of a string, either by truncation or padding with spaces. Make sure the string is large enough to hold the entire buffer if it is expanded! PROTOTYPE....ChrP CTYP strsetsz(ChrP s, IntT n); ARGUMENTS s - Input String n - New Length RETURNS Address of the modified string. SEE ALSO strtrim (Page 124) EXAMPLE FILE: MNU\ITMSET.C.......Line: 31 FILE: ENT\ENTFLD.C.......Line: 85 FILE: TCXLDEMO.C.........Line: 2006, 2008 --------------------------------------------------------------------------- NAME.........struplow DESCRIPTION Converts a string to mixed upper & lowercase characters. Characters are forced to upper or lowercase depending upon the previous character in the string. PROTOTYPE....ChrP CTYP struplow(ChrP s); ARGUMENTS s - String to Convert RETURNS Address of the modified string SEE ALSO touplow (Page 191) EXAMPLE FILE: TCXLDEMO.C.........Line: 1474, 1475, 1476, 1477, 1478, 1479, 1480, 1481, 1482, 1812 TesSeRact CXL V5.5 Documentation Page 141 --------------------------------------------------------------------------- Hardware Level Functions Information Subsystem Library Information --------------------------------------------------------------------------- NAME.........TcxlInit DESCRIPTION This is the initialization function for the TCXL library. Within this function, the low-level video, keyboard and mouse routines are initialized. In future versions, all add-in modules will also be initialized here, as well as user-defined functions. This function also sets the TcxlTerm() function as a termination function, using the compiler's atexit() procedure. PROTOTYPE....VOID CTYP TcxlInit(NOARG); ARGUMENTS....None RETURNS......None SEE ALSO TcxlTerm (Page 142) --------------------------------------------------------------------------- NAME.........TcxlTerm DESCRIPTION TcxlTerm() is currently a NULL function; in addition, a user should NEVER CALL IT UNDER ANY CIRCUMSTANCES. This function is automatically installed as an atexit() routine, and is provided with this release to maintain upward compatibility. PROTOTYPE....VOID CDC TcxlTerm(NOARG); ARGUMENTS....None RETURNS......None SEE ALSO TcxlInit (Page 142) Page 142 TesSeRact CXL V5.5 Documentation --------------------------------------------------------------------------- NAME.........TcxlVer DESCRIPTION This function returns a unsigned integer that describes the version number of the TCXL library. PROTOTYPE....WrdT TcxlVer(NOARG); ARGUMENTS....None RETURNS An unsigned integer, with the high byte equal to the major version of TCXL, and the low byte equal to the minor version. EXAMPLE printf("This is Version %d.%d of TCXL\n", TcxlVer() >> 8, TcxlVer & 0x00ff); --------------------------------------------------------------------------- Hardware Information Please note that the functions gameport(), mathchip(), numflop(), numpar() and numser() are no longer used in TCXL. They have been replaced by macros accessing the _HdwCtl structure (See User's Guide). The old names have been aliased to the new macros; however, we recommend you change your source to conform with the new naming conventions. --------------------------------------------------------------------------- NAME........._BioEqp DESCRIPTION Initializes the global _HdwCtl object with BIOS equipment flag data. Automatically called during TcxlInit() (Page 142). PROTOTYPE....VOID PAS _BioEqp(NOARG); ARGUMENTS....None RETURNS......None SEE ALSO The various Hdw...() macros TesSeRact CXL V5.5 Documentation Page 143 --------------------------------------------------------------------------- NAME.........BiosVer DESCRIPTION Returns the ROM BIOS version date. May not work on some compatible machines. PROTOTYPE....ChrP CTYP BiosVer(NOARG); ARGUMENTS....None RETURNS The address of the static string containing the ROM BIOS version date. SEE ALSO machid (Page 145) --------------------------------------------------------------------------- NAME.........ClockCal DESCRIPTION Determines if a clock-calendar board is installed. This usually will only work with the clock-calendar boards in XT-style machines. PROTOTYPE....IntT CTYP ClockCal(NOARG); ARGUMENTS....None RETURNS Nonzero if a clock-calendar board is present. Page 144 TesSeRact CXL V5.5 Documentation --------------------------------------------------------------------------- NAME.........MachId DESCRIPTION Returns the value of the machine ROM ID byte. PROTOTYPE....IntT CTYP MachId(NOARG) ARGUMENTS....None RETURNS The value of the machine ROM ID byte. Will usually be one of thefollowing values. Any other value is unknown. IBMPC - IBM PC IBMPCXT - IBM PC/XT IBMPCJR - IBM PCjr IBMPCAT - IBM PC/AT IBMPCXT2 - IBM PC/XT-2 IBMPS30 - IBM PS/2 Model 30 IBMCONV - IBM PC Convertible IBMPS80 - IBM PS/2 Model 80 SPERRYPC - Sperry PC CPQPORT - Compaq Portable CPQPLUS - Compaq Portable Plus HP110 - HP 110 Portable SEE ALSO biosver (Page 144) --------------------------------------------------------------------------- NAME.........HdwFlg Macro DESCRIPTION Returns the full flag word of the BIOS hardware settings. PROTOTYPE....IntT HdwFlg(NOARG) ARGUMENTS....None RETURNS The Full Flag Word Of The BIOS Hardware Settings TesSeRact CXL V5.5 Documentation Page 145 --------------------------------------------------------------------------- NAME.........HdwGam Macro .............gameport DESCRIPTION Determines if a game port is installed. PROTOTYPE....IntT HdwGam(NOARG) #define HdwGam() (0 != (HdwFlg() & 0x01)) #define gameport() HdwGam() ARGUMENTS....None RETURNS TRUE if game port is installed FALSE otherwise --------------------------------------------------------------------------- NAME.........HdwNdp Macro .............mathchip DESCRIPTION Determines if a math coprocesser is installed. PROTOTYPE....IntT HdwNdp(NOARG) #define HdwNdp() (0 != (HdwFlg() & 0x02)) #define mathchip() HdwNdp() ARGUMENTS....None RETURNS TRUE if math chip is installed FALSE otherwise --------------------------------------------------------------------------- NAME.........HdwMou Macro DESCRIPTION Determines if the PS/2 (Microchannel) BUS mouse is installed. PROTOTYPE....IntT HdwMou(NOARG) #define HdwMou() (0 != (HdwFlg() & 0x04)) ARGUMENTS....None RETURNS TRUE if Mouse installed FALSE otherwise Page 146 TesSeRact CXL V5.5 Documentation --------------------------------------------------------------------------- NAME.........HdwMdm Macro DESCRIPTION Determines if the PS/2 (Microchannel) modem is installed. PROTOTYPE....IntT HdwMdm(NOARG) #define HdwMdm() (0 != (HdwFlg() & 0x08)) ARGUMENTS....None RETURNS TRUE if mdoem installed FALSE otherwise --------------------------------------------------------------------------- NAME.........HdwC40 Macro DESCRIPTION Determines if the initial video mode when the machine booted was Color, 40 columns by 25 rows. PROTOTYPE....IntT HdwC40(NOARG) #define HdwC40() (0 != (HdwFlg() & 0x10)) ARGUMENTS....None RETURNS TRUE if machine booted in 40x25 color FALSE otherwise --------------------------------------------------------------------------- NAME.........HdwC80 Macro DESCRIPTION Determines if the initial video mode when the machine booted was Color, 80 columns by 25 rows. PROTOTYPE....IntT HdwC80(NOARG) #define HdwC80() (0 != (HdwFlg() & 0x20)) ARGUMENTS....None RETURNS TRUE if machine booted in 80x25 color FALSE otherwise TesSeRact CXL V5.5 Documentation Page 147 --------------------------------------------------------------------------- NAME.........HdwM80 Macro DESCRIPTION Determines if the initial video mode when the machine booted was Monochrome, 80 columns by 25 rows. PROTOTYPE....IntT HdwM80(NOARG) #define HdwM80() (0 != (HdwFlg() & 0x40)) ARGUMENTS....None RETURNS TRUE if machine booted in 80x25 monochrome FALSE otherwise --------------------------------------------------------------------------- NAME.........HdwDrv Macro .............numflop DESCRIPTION Returns the number of floppy disk drives installed. PROTOTYPE....IntT HdwDrv(NOARG) #define HdwDrv() (_HdwCtl.hdrv) #define numflop() HdwDrv() ARGUMENTS....None RETURNS The number of floppy disk drives installed. --------------------------------------------------------------------------- NAME.........HdwPar Macro .............numpar DESCRIPTION Returns the number of parallel ports. PROTOTYPE....IntT HdwPar(NOARG) #define HdwPar() (_HdwCtl.hser) #define numpar() HdwPar() ARGUMENTS....None RETURNS The number of parallel ports installed. Page 148 TesSeRact CXL V5.5 Documentation --------------------------------------------------------------------------- NAME.........HdwSer Macro .............numser DESCRIPTION Returns the number of serial ports installed. PROTOTYPE....IntT HdwSer(NOARG) #define HdwSer() (_HdwCtl.hser) #define numser() HdwSer() ARGUMENTS....None RETURNS The number of serial ports installed. --------------------------------------------------------------------------- Utility Routines --------------------------------------------------------------------------- NAME.........Beep Macro DESCRIPTION Sounds a beep in the speaker. PROTOTYPE....VOID Beep(NOARG); #define Beep() _StdOut(BEL) ARGUMENTS....None RETURNS......None SEE ALSO _StdOut (Page 152) --------------------------------------------------------------------------- NAME.........RandFile DESCRIPTION Creates a random file name. PROTOTYPE....ChrP CTYP RandFile(NOARG); ARGUMENTS....None RETURNS Address of the static string containing the random file name. TesSeRact CXL V5.5 Documentation Page 149 --------------------------------------------------------------------------- NAME.........Sound DESCRIPTION Sounds a tone of specified pitch and duration. PROTOTYPE....VOID CTYP Sound(WrdT pv, WrdT dt); ARGUMENTS pv - Pitch (0-65535) dt - Duration (in timer ticks; 182=10 seconds) RETURNS......None --------------------------------------------------------------------------- NAME.........SysDate DESCRIPTION Returns a string containing the current system date. PROTOTYPE....ChrP CTYP SysDate(IntT d); ARGUMENTS d - Date Time Code. One of the following: Code Example ---- ------- 0 December 3, 1988 1 3 Dec 88 2 12-3-88 3 12/3/88 4 3/12/88 5 12/03/88 RETURNS Address of the static string containing the system date. SEE ALSO SysTime (Page 151) Page 150 TesSeRact CXL V5.5 Documentation --------------------------------------------------------------------------- NAME.........SysTime DESCRIPTION Returns a string containing the current system time. PROTOTYPE....ChrP CTYP SysTime(IntT t); ARGUMENTS t - Time Type Code. Can be one of the following: Code Example ---- ------- 0 16:30:57.89 1 16:30:57 2 4:30 PM 3 4:30p 4 4:30 5 04:30 RETURNS Address of the static string containing the system date. SEE ALSO SysDate (Page 150) --------------------------------------------------------------------------- NAME.........TabNxt DESCRIPTION Calculates the next tab stop from given column and tab width. PROTOTYPE....IntT PAS TabNxt(IntT c, IntT w); ARGUMENTS c - Column w - Tab Width RETURNS The column of the next tab stop TesSeRact CXL V5.5 Documentation Page 151 --------------------------------------------------------------------------- NAME........._Delay DESCRIPTION Delays program execution for a specified duration. PROTOTYPE....VOID PAS _Delay(WrdT d); ARGUMENTS d - Duration (In Timer Ticks; 182 = 10 seconds) RETURNS......None SEE ALSO _Timer (Page 153) KeyTime (Page 122) _WaitMs (Page 153) --------------------------------------------------------------------------- NAME........._StdOut DESCRIPTION Outputs a character to the DOS Standard Output Device. PROTOTYPE....VOID PAS _StdOut(ArgT ch); ARGUMENTS ch - Character to Output RETURNS......None SEE ALSO _StdOutS (Page 152) Beep (Page 149) --------------------------------------------------------------------------- NAME........._StdOutS DESCRIPTION Outputs a string through the DOS Standard Output Device. PROTOTYPE....VOID PAS _StdOutS(ChrP s); ARGUMENTS s - String to output. RETURNS......None SEE ALSO _StdOut (Page 152) Page 152 TesSeRact CXL V5.5 Documentation --------------------------------------------------------------------------- NAME........._Timer DESCRIPTION Returns the value of the BIOS timer. This value is incremented by one every 18.2 seconds. PROTOTYPE....DwdT PAS _Timer(NOARG); ARGUMENTS....None RETURNS Current value of the BIOS timer. SEE ALSO _Delay (Page 152) _WaitMs (Page 153) --------------------------------------------------------------------------- NAME........._WaitMs DESCRIPTION This is a millisecond-resolution delay function. Waits for the specified number of milliseconds before returning control. PROTOTYPE....VOID PAS _WaitMs(IntT ms) ARGUMENTS ms - Number of milliseconds to wait RETURNS......None SEE ALSO _Delay (Page 152) _Timer (Page 153) TesSeRact CXL V5.5 Documentation Page 153 --------------------------------------------------------------------------- Memory Subsystem --------------------------------------------------------------------------- NAME.........MemInit DESCRIPTION This routine initializes the Memory Subsystem. It is called automatically from inside TcxlInit(). PROTOTYPE....VOID PAS MemInit(NOARG); ARGUMENTS....None RETURNS......None --------------------------------------------------------------------------- NAME.........MemTerm Macro DESCRIPTION This routine currently does nothing. It is provided for future compatibility. PROTOTYPE....VOID MemTerm(NOARG); #define MemTerm() ARGUMENTS....None RETURNS......None --------------------------------------------------------------------------- Expanded Memory Routines --------------------------------------------------------------------------- NAME.........EMSalloc DESCRIPTION This function allocates Expanded Memory pages. PROTOTYPE...._HdlT PAS EMSalloc(IntT np); ARGUMENTS np - Number of 16K Pages to allocate RETURNS The EMS handle associate with this block of pages. On error, returns FALSE and sets MemEerr to the error code. Page 154 TesSeRact CXL V5.5 Documentation --------------------------------------------------------------------------- NAME.........EMSfree DESCRIPTION Frees a block of EMS pages. PROTOTYPE....IntT PAS EMSfree(_HdlT eh); ARGUMENTS eh - EMS Handle RETURNS TRUE on success, FALSE on failure, and sets MemEerr. --------------------------------------------------------------------------- NAME.........EMSgetnam DESCRIPTION Returns the "name" of the EMS block associated with the passed handle. PROTOTYPE....ChrFP PAS EMSgetnam(_HdlT eh, ChrFP np); ARGUMENTS eh - EMS Handle np - Pointer to 9-byte buffer area RETURNS Pointer to Buffer --------------------------------------------------------------------------- NAME.........EMScount DESCRIPTION Gets the number of EMS handles previously allocated. PROTOTYPE....IntT PAS EMScount(NOARG); ARGUMENTS....None RETURNS Handle Count on success, FALSE on failure, and sets MemEerr. TesSeRact CXL V5.5 Documentation Page 155 --------------------------------------------------------------------------- NAME.........EMSpages DESCRIPTION Gets the number of EMS pages associated with the passed handle. PROTOTYPE....IntT PAS EMSpages(_HdlT eh); ARGUMENTS eh - EMS Handle RETURNS Page Count on success, FALSE on failure, and sets MemEerr. --------------------------------------------------------------------------- NAME.........EMSmap DESCRIPTION Maps a "logical" EMS page into a "physical" hardware location PROTOTYPE....IntT PAS EMSmap(_HdlT eh, IntT pp, IntT lp); ARGUMENTS eh - EMS Handle pp - Physical Page lp - Logical Page RETURNS TRUE on success, FALSE on failure, and sets MemEerr. --------------------------------------------------------------------------- NAME.........EMSquery DESCRIPTION Get the number of free EMS pages. Also sets the size parameters in _MemCtl. PROTOTYPE....IntT PAS EMSquery(NOARG); ARGUMENTS....None RETURNS Number of Free Pages; FALSE on failure, and sets MemEerr. Page 156 TesSeRact CXL V5.5 Documentation --------------------------------------------------------------------------- NAME.........EMSrest DESCRIPTION Restores the EMS Page Map. PROTOTYPE....IntT PAS EMSrest(_HdlT eh); ARGUMENTS eh - EMS Handle RETURNS TRUE on success, FALSE on error, and sets MemEerr. --------------------------------------------------------------------------- NAME.........EMSsave DESCRIPTION Saves the EMS Page Map. PROTOTYPE....IntT PAS EMSsave(_HdlT eh); ARGUMENTS eh - EMS Handle RETURNS TRUE on success, FALSE on error, and sets MemEerr. --------------------------------------------------------------------------- NAME.........EMSsetnam DESCRIPTION Assigns a "name" to be associated with the particular EMS handle. PROTOTYPE....IntT PAS EMSsetnam(_HdlT eh, ChrFP np); ARGUMENTS eh - EMS Handle np - NULL-terminated Handle "name" RETURNS TRUE on success, FALSE on error, and sets MemEerr. TesSeRact CXL V5.5 Documentation Page 157 --------------------------------------------------------------------------- NAME.........EMSstat DESCRIPTION Checks the status of the EMS driver. PROTOTYPE....IntT PAS EMSstat(NOARG); ARGUMENTS....None RETURNS TRUE if EMS is installed and active, FALSE on error, and sets MemEerr. --------------------------------------------------------------------------- Extended Memory Routines --------------------------------------------------------------------------- NAME.........XMSalloc DESCRIPTION Allocates a block of the given size out of the pool of free extended memory. PROTOTYPE...._HdlT PAS XMSalloc(WrdT nk); ARGUMENTS nk - K bytes to allocate RETURNS XMS Handle if successful, FALSE on error, and sets MemXerr. --------------------------------------------------------------------------- NAME.........XMScopy DESCRIPTION Copy from a block of memory to another block of memory. May be used for copys between "normal" and XMS memory in either direction, between two different XMS areas, or between two blocks of DOS memory. PROTOTYPE....IntT PAS XMScopy(_XmsFP xp); ARGUMENTS xp - Correctly Defined XMS_Move structure (see the XMS documentation for details) RETURNS TRUE if successful, FALSE on error, and sets MemXerr. Page 158 TesSeRact CXL V5.5 Documentation --------------------------------------------------------------------------- NAME.........XMSfree DESCRIPTION Free a block of extended memory previously allocated. PROTOTYPE....IntT PAS XMSfree(_HdlT xh); ARGUMENTS xh - XMS Handle RETURNS RETURNS TRUE if successful, FALSE on error, and sets MemXerr. --------------------------------------------------------------------------- NAME.........XMSavail DESCRIPTION Get amount of free XMS available. PROTOTYPE....IntT PAS XMSavail(NOARG); ARGUMENTS....None RETURNS Largest available block of XMS memory. Also updates globals in _MemCtl. --------------------------------------------------------------------------- NAME.........XMSquery DESCRIPTION Determine the amount of memory used by the passed XMS handle. PROTOTYPE....IntT PAS XMSquery(_HdlT xh); ARGUMENTS xh - XMS Handle RETURNS Length of the XMS block. FALSE on error, and sets MemXerr. TesSeRact CXL V5.5 Documentation Page 159 --------------------------------------------------------------------------- NAME.........XMSlock DESCRIPTION This function locks an extended memory block, and returns its base address as a 32-bit linear address. Locked memory blocks are guaranteed not to move, but should be unlocked as soon as possible. A block does NOT have to be locked in order to use the XMSCopy() function. PROTOTYPE...._AdrT PAS XMSlock(_HdlT xh); ARGUMENTS xh - XMS Handle RETURNS 32-bit linear pointer to base of memory block. 0 if error. --------------------------------------------------------------------------- NAME.........XMSrealloc DESCRIPTION Changes the size of a block of extended memory that has been previously allocated. PROTOTYPE....IntT PAS XMSrealloc(_HdlT xh, WrdT ns); ARGUMENTS xh - XMS Handle ns - New Size (in K) RETURNS TRUE if successful, FALSE on error, and sets MemXerr. --------------------------------------------------------------------------- NAME.........XMSunlock DESCRIPTION Unlocks a previously-locked Extended Memory block. PROTOTYPE....IntT PAS XMSunlock(_HdlT xh); ARGUMENTS xh - XMS Handle RETURNS TRUE if successful, FALSE on error, and sets MemXerr. Page 160 TesSeRact CXL V5.5 Documentation --------------------------------------------------------------------------- NAME........._A20_LD ............._A20_LE ............._A20chk ............._A20dis ............._A20ena DESCRIPTION This functions manipulate the A20 line on 286 processors. Under normal conditions, it is not necessary to manipulate this line to access XMS; consult the XMS documentation for details on these functions. PROTOTYPE....IntT PAS _A20_LD(NOARG); .............IntT PAS _A20_LE(NOARG); .............IntT PAS _A20chk(NOARG); .............IntT PAS _A20dis(NOARG); .............IntT PAS _A20ena(NOARG); ARGUMENTS....None RETURNS TRUE if successful, FALSE on error, and sets MemXerr. --------------------------------------------------------------------------- NAME.........UMBalloc DESCRIPTION This function allocates an Upper Memory Block. To determine the largest available UMB block, call this function with the size parameter set to 0xFFFF. PROTOTYPE....IntT PAS UMBalloc(WrdT np, _SegFP ps); ARGUMENTS np - Number of Paragraphs to Allocate ps - FAR Pointer to location to store returned segment address RETURNS If the returned segment address is zero, this function returns the largest available UMB area. If the returned segment is non-zero, the memory is allocated, and this function returns the actual amount allocated. TesSeRact CXL V5.5 Documentation Page 161 --------------------------------------------------------------------------- NAME.........UMBfree DESCRIPTION Frees a previously allocated UMB. PROTOTYPE....IntT PAS UMBfree(_SegT ps); ARGUMENTS ps - Segment address to free RETURNS TRUE if successful, FALSE on error, and sets MemXerr. --------------------------------------------------------------------------- NAME.........HMAalloc DESCRIPTION Reserves the High Memory Area for use by this application program. PROTOTYPE....IntT PAS HMAalloc(NOARG); ARGUMENTS....None RETURNS TRUE if successful, FALSE on error, and sets MemXerr. --------------------------------------------------------------------------- NAME.........HMAfree DESCRIPTION Frees the HMA area for use by other programs. PROTOTYPE....IntT PAS HMAfree(NOARG); ARGUMENTS....None RETURNS TRUE if successful, FALSE on error, and sets MemXerr. Page 162 TesSeRact CXL V5.5 Documentation --------------------------------------------------------------------------- Printer Subsystem --------------------------------------------------------------------------- NAME........._LPputC DESCRIPTION This is an internal routine to output a character to the printer port, expanding a single "\n" to "\r\n". PROTOTYPE....VOID PAS _LPputC(IntT ch); ARGUMENTS ch - Char to Output --------------------------------------------------------------------------- NAME.........lcrlf Macro DESCRIPTION Prints a carriage return and line feed on the printer (PRN). PROTOTYPE....VOID lcrlf(NOARG); #define lcrlf() lprintc(0x0A) ARGUMENTS....None --------------------------------------------------------------------------- NAME.........lprintc Macro DESCRIPTION Prints a character on the printer (PRN). PROTOTYPE....VOID lprintc(IntT ch); #define lprintc(c) _LPputC(c); ARGUMENTS ch - Character to print --------------------------------------------------------------------------- NAME.........lprintf DESCRIPTION Sends formatted output to the printer (PRN). Works similar to the standard C printf() function. PROTOTYPE....VOID CDC lprintf(ChrP fs, ...); ARGUMENTS fs - Format String ... - Additional Arguments TesSeRact CXL V5.5 Documentation Page 163 --------------------------------------------------------------------------- NAME.........lprintn DESCRIPTION Prints a fixed width buffer on the printer (PRN). PROTOTYPE....VOID CTYP lprintn(ChrP ps, IntT nc); ARGUMENTS ps - Buffer to Print nc - Number of Bytes to Print --------------------------------------------------------------------------- NAME.........lprintns DESCRIPTION Prints a string to a fixed width on the printer (PRN). PROTOTYPE....VOID CTYP lprintns(ChrP ps, IntT nc); ARGUMENTS ps - String to Print nc - Number of Characters to Print --------------------------------------------------------------------------- NAME.........lprints DESCRIPTION Prints a string on the printer (PRN). PROTOTYPE....VOID CTYP lprints(ChrP ps); ARGUMENTS ps - String to Print --------------------------------------------------------------------------- NAME.........lprintsb DESCRIPTION Prints a bold-faced string on the printer (PRN). PROTOTYPE....VOID CTYP lprintsb(ChrP ps, IntT nr); ARGUMENTS ps - String to Print nr - Number of Repetions Page 164 TesSeRact CXL V5.5 Documentation --------------------------------------------------------------------------- NAME.........lprintsu DESCRIPTION Prints an underlined string on the printer (PRN). PROTOTYPE....VOID CTYP lprintsu(ChrP ps); ARGUMENTS ps - String to Print --------------------------------------------------------------------------- NAME.........scrndump DESCRIPTION Dumps the current screen to the printer (PRN). PROTOTYPE....VOID CTYP scrndump(NOARG); ARGUMENTS....None --------------------------------------------------------------------------- NAME.........windump DESCRIPTION Dumps a screen window to the printer (PRN). PROTOTYPE....VOID CTYP windump(IntT sr, IntT sc, IntT er, IntT ec); ARGUMENTS sr - Start Row sc - Start Column er - End Row ec - End Column --------------------------------------------------------------------------- OpSys Subsystem --------------------------------------------------------------------------- NAME........._ChgDir DESCRIPTION DOS Change Current Directory Routine. PROTOTYPE....IntT PAS _ChgDir(ChrP p); ARGUMENTS p - New Directory Name RETURNS 0 on success, 1 on failure. TesSeRact CXL V5.5 Documentation Page 165 --------------------------------------------------------------------------- NAME........._ChgDrv DESCRIPTION DOS Change Current Drive Routine. PROTOTYPE....IntT PAS _ChgDrv(IntT d); ARGUMENTS d - New Drive Letter RETURNS Last Drive in System as an upper-case letter --------------------------------------------------------------------------- NAME........._FndFst DESCRIPTION DOS FindFirst Routine. PROTOTYPE....IntT PAS _FndFst(ChrP p, FfbP f, IntT a); ARGUMENTS p - FileSpec to match f - DTA structure a - Attribute to match RETURNS 0 on success, 1 on failure. --------------------------------------------------------------------------- NAME........._FndNxt DESCRIPTION DOS FindNext Routine. PROTOTYPE....IntT PAS _FndNxt(FfbP f); ARGUMENTS f - DTA structure RETURNS 0 on success, 1 on failure. Page 166 TesSeRact CXL V5.5 Documentation --------------------------------------------------------------------------- NAME........._GetDir DESCRIPTION DOS Get Directory Routine. PROTOTYPE....VOID PAS _GetDir(IntT d, ChrP p); ARGUMENTS d - Drive Letter p - Return Buffer RETURNS......None --------------------------------------------------------------------------- NAME........._GetDrv DESCRIPTION DOS Get Current Drive Routine PROTOTYPE....IntT PAS _GetDrv(NOARG); ARGUMENTS....None RETURNS The current drive as an upper-case letter. --------------------------------------------------------------------------- NAME........._InpByt DESCRIPTION Read a byte from a hardware port. PROTOTYPE....IntT PAS _InpByt(WrdT p); ARGUMENTS p - Port to Read RETURNS The returned value. TesSeRact CXL V5.5 Documentation Page 167 --------------------------------------------------------------------------- NAME........._InpWrd DESCRIPTION Read a word from a hardware port. PROTOTYPE....WrdT PAS _InpWrd(WrdT p); ARGUMENTS p - Port to Read RETURNS The returned value --------------------------------------------------------------------------- NAME........._IntDis DESCRIPTION Disable Interrupts. PROTOTYPE....VOID PAS _IntDis(NOARG); ARGUMENTS....None RETURNS......None --------------------------------------------------------------------------- NAME........._IntEna DESCRIPTION Enable Interrupts. PROTOTYPE....VOID PAS _IntEna(NOARG); ARGUMENTS....None RETURNS......None Page 168 TesSeRact CXL V5.5 Documentation --------------------------------------------------------------------------- NAME........._OutByt DESCRIPTION Output a byte to a hardware port. PROTOTYPE....VOID PAS _OutByt(WrdT p, IntT b); ARGUMENTS p - Port to Write b - Byte to Write RETURNS......None --------------------------------------------------------------------------- NAME........._OutWrd DESCRIPTION Output a word to a hardware port. PROTOTYPE....VOID PAS _OutWrd(WrdT p, WrdT w); ARGUMENTS p - Port to Write w - Word to Write RETURNS......None TesSeRact CXL V5.5 Documentation Page 169 --------------------------------------------------------------------------- Bottom Level Functions Video Access Subsystem Direct Hardware Access --------------------------------------------------------------------------- NAME.........VidOfs Macro DESCRIPTION Convert a row/column coordinate to an offset into the video buffer. PROTOTYPE....WrdT VidOfs(IntT r, IntT c); #define VidOfs(r,c) ((((r)*VidWid)+(c))<<1) ARGUMENTS r - Row c - Column RETURNS Offset into video buffer --------------------------------------------------------------------------- NAME.........VgetDvb <_TcxlVid.H> DESCRIPTION Returns alternate buffer segment, if it exists. PROTOTYPE....WrdT PAS VgetDvb(WrdT v); ARGUMENTS v - Assumed Video Buffer RETURNS Actual Video Buffer --------------------------------------------------------------------------- NAME.........VisaEga <_TcxlVid.H> DESCRIPTION Determines whether video is an EGA/VGA card. PROTOTYPE....IntT PAS VisaEga(NOARG); ARGUMENTS....None RETURNS -1 if not EGA/VGA BIOS, 0 if EGA/VGA/Color, or 1 if EGA/VGA/Mono Page 170 TesSeRact CXL V5.5 Documentation --------------------------------------------------------------------------- NAME.........VisaPs2 <_TcxlVid.H> DESCRIPTION Determines whether we have a PS/2 BIOS PROTOTYPE....IntT PAS VisaPs2(NOARG); ARGUMENTS....None RETURNS -1 if not a PS/2 bios, else adapter/monitor type. Monitor types returned: 0 - No Display 1 - Mono/Mono 2 - CGA/Color 3 - Reserved 4 - EGA/Color 5 - EGA/Mono 6 - PGA/Color 7 - VGA/Analog Mono 8 - VGA/Analog Color --------------------------------------------------------------------------- NAME.........VsetChr <_TcxlVid.H> DESCRIPTION Select/load EGA/VGA character-set using AX= PROTOTYPE....VOID PAS VsetChr(WrdT f); ARGUMENTS f - AX value for call RETURNS......None TesSeRact CXL V5.5 Documentation Page 171 --------------------------------------------------------------------------- Ultravision Support --------------------------------------------------------------------------- NAME........._VuvDis <_TcxlVid.H> DESCRIPTION Disables UltraVision Video Control. Restores video display to default settings. PROTOTYPE....VOID PAS _VuvDis(NOARG); ARGUMENTS....None RETURNS......None --------------------------------------------------------------------------- NAME........._VuvEna <_TcxlVid.H> DESCRIPTION Enables UltraVision, restoring previous UV video parameters. PROTOTYPE....VOID PAS _VuvEna(NOARG); ARGUMENTS....None RETURNS......None --------------------------------------------------------------------------- NAME........._VuvGet <_TcxlVid.H> DESCRIPTION Get Ultravision Mode, initialize flags. Called internally by VidInit(). PROTOTYPE....IntT PAS _VuvGet(NOARG); ARGUMENTS....None RETURNS UV Text Mode Page 172 TesSeRact CXL V5.5 Documentation --------------------------------------------------------------------------- NAME........._VuvSet <_TcxlVid.H> DESCRIPTION Sets UltraVision text mode. PROTOTYPE....VOID PAS _VuvSet(IntT md); ARGUMENTS md - UV Mode RETURNS......None --------------------------------------------------------------------------- NAME........._VuvVal <_TcxlVid.H> DESCRIPTION Validates UltraVision text mode. Used to determine whether the passed mode is valid for the installed card and version of UltraVision. PROTOTYPE....VOID PAS _VuvVal(IntT md); ARGUMENTS md - UV Mode RETURNS 0 if mode is valid, -1 if invalid --------------------------------------------------------------------------- Internal Hardware Calls --------------------------------------------------------------------------- NAME........._VgetN <_TcxlVid.H> Macro ............._VgetN_ DESCRIPTION Get VcelTs at VposT to via BIOS or DMA, PROTOTYPE....VOID _VgetN(VcelP p, VposT v, IntT n); .............VOID PAS _VgetN_(VcelP p, WrdT v, IntT n); #define _VgetN(p,v,n) (_VgetN_((p),VposW(v),(n))) TesSeRact CXL V5.5 Documentation Page 173 --------------------------------------------------------------------------- NAME........._VgetS <_TcxlVid.H> Macro ............._VgetS_ DESCRIPTION Get chars at VposT to , skipping attrs, via BIOS or DMA. PROTOTYPE....VOID _VgetS(BytP p, VposT v, IntT n); .............VOID PAS _VgetS_(BytP p, WrdT v, IntT n); #define _VgetS(p,v,n) (_VgetS_((p),VposW(v),(n))) --------------------------------------------------------------------------- NAME........._VgetW <_TcxlVid.H> Macro ............._VgetW_ DESCRIPTION Get VcelT at VposT via BIOS or DMA. PROTOTYPE....VOID _VgetW(VposT v, VcelT x); .............WrdT PAS _VgetW_(WrdT v); #define _VgetW(v,x) (VcelW(x)=_VgetW_(VposW(v))) --------------------------------------------------------------------------- NAME........._VgetX <_TcxlVid.H> Macro ............._VgetX_ DESCRIPTION Get VcelT at cursor (BIOS) PROTOTYPE....VOID _VgetX(VcelT x); .............WrdT PAS _VgetX_(NOARG); #define _VgetX(x) (VcelW(x)=_VgetX_()) --------------------------------------------------------------------------- NAME........._VputA <_TcxlVid.H> Macro ............._VputA_ DESCRIPTION Put dup attrs at VposT , skipping chars, via BIOS or DMA. PROTOTYPE....VOID _VputA(VposT v, IntT a, IntT n); .............VOID PAS _VputA_(WrdT v, IntT a, IntT n); #define _VputA(v,a,n) (_VputA_(VposW(v),(a),(n))) Page 174 TesSeRact CXL V5.5 Documentation --------------------------------------------------------------------------- NAME........._VputB <_TcxlVid.H> Macro ............._VputB_ DESCRIPTION Put dup chars and attrs at VposT via BIOS or DMA. PROTOTYPE....VOID _VputB(VposT v, IntT c, IntT a, IntT n); .............VOID PAS _VputB_(WrdT v, IntT c, IntT a, IntT n); #define _VputB(v,c,a,n) (_VputB_(VposW(v),(c),(a),(n))) --------------------------------------------------------------------------- NAME........._VputC <_TcxlVid.H> Macro ............._VputC_ DESCRIPTION Put dup chars at VposT , skipping attrs, via BIOS or DMA. PROTOTYPE....VOID _VputC(VposT v, IntT c, IntT n); .............VOID PAS _VputC_(WrdT v, IntT c, IntT n); #define _VputC(v,c,n) (_VputC_(VposW(v),(c),(n))) --------------------------------------------------------------------------- NAME........._VputN <_TcxlVid.H> Macro ............._VputN_ DESCRIPTION Put VcelTs from

at VposT via BIOS or DMA. PROTOTYPE....VOID _VputN(VposT v, VcelP p, WrdT n); .............VOID PAS _VputN_(WrdT v, VcelP p, IntT n); #define _VputN(v,p,n) (_VputN_(VposW(v),(p),(n))) --------------------------------------------------------------------------- NAME........._VputS <_TcxlVid.H> Macro ............._VputS_ DESCRIPTION Put string at

with attr at VposT via BIOS or DMA. PROTOTYPE....VOID _VputS(VposT v, ChrP p, IntT a); .............VOID PAS _VputS_(WrdT v, ChrP p, IntT a); #define _VputS(v,p,a) (_VputS_(VposW(v),(p),(a))) TesSeRact CXL V5.5 Documentation Page 175 --------------------------------------------------------------------------- NAME........._VputW <_TcxlVid.H> Macro ............._VputW_ DESCRIPTION Put dup VcelTs at VposT via BIOS or DMA. PROTOTYPE....VOID _VputW(VposT v, VcelT c, IntT n); .............VOID PAS _VputW_(WrdT v, WrdT c, IntT n); #define _VputW(v,c,n) (_VputW_(VposW(v),VcelW(c),(n))) --------------------------------------------------------------------------- NAME........._VputX <_TcxlVid.H> Macro ............._VputX_ DESCRIPTION Put VcelT at cursor (BIOS) PROTOTYPE....VOID _VputX(VcelT x); .............VOID PAS _VputX_(WrdT x); #define _VputX(x) (_VputX_(VcelW(x))) --------------------------------------------------------------------------- Keyboard Access Subsystem --------------------------------------------------------------------------- NAME.........KscnCod DESCRIPTION This function returns the appropriate scan code for the passed ASCII character. PROTOTYPE....IntT CTYP KscnCod(IntT c); ARGUMENTS c - Character to Translate RETURNS Scan code for the character --------------------------------------------------------------------------- NAME.........KcapOff Macro DESCRIPTION This function turns CapsLock off. PROTOTYPE....VOID KcapOff(NOARG); #define KcapOff() (_KeySet(KEY_CAP, 0)) Page 176 TesSeRact CXL V5.5 Documentation --------------------------------------------------------------------------- NAME.........KcapOn Macro DESCRIPTION This function turns CapsLock on. PROTOTYPE....VOID KcapOn(NOARG); #define KcapOn() (_KeySet(KEY_CAP, 1)) --------------------------------------------------------------------------- NAME.........KextOff Macro DESCRIPTION This function turns off support for the enhanced keyboard, if such support has already been enabled. PROTOTYPE....VOID KextOff(NOARG); #define KextOff() (KctlFlg &= ~KEY_EXT) --------------------------------------------------------------------------- NAME.........KextOn Macro DESCRIPTION This function enables enhanced keyboard support, if TCXL was able to autodetect the presence of an enhanced keyboard AND an enhanced BIOS. PROTOTYPE....VOID KextOn(NOARG); #define KextOn() if(TcxlKey) KctlFlg |= KEY_EXT --------------------------------------------------------------------------- NAME.........KinsOff Macro DESCRIPTION This function turns Insert off. PROTOTYPE....VOID KinsOff(NOARG); #define KinsOff() (_KeySet(KEY_INS, 0)) --------------------------------------------------------------------------- NAME.........KinsOn Macro DESCRIPTION This function turns Insert on. PROTOTYPE....VOID KinsOn(NOARG); #define KinsOn() (_KeySet(KEY_INS, 1)) TesSeRact CXL V5.5 Documentation Page 177 --------------------------------------------------------------------------- NAME.........KnumOff Macro DESCRIPTION This function turns Numlock off. PROTOTYPE....VOID KnumOff(NOARG); #define KnumOff() (_KeySet(KEY_NUM, 0)) --------------------------------------------------------------------------- NAME.........KnumOn Macro DESCRIPTION This function turns Numlock on. PROTOTYPE....VOID KnumOn(NOARG); #define KnumOn() (_KeySet(KEY_NUM, 1)) --------------------------------------------------------------------------- NAME........._KeyExt DESCRIPTION Determine if the machine supports extended BIOS keyboard codes. PROTOTYPE....IntT PAS _KeyExt(NOARG); ARGUMENTS....None RETURNS Zero if BIOS doesn't support extended codes One if BIOS support exists; also updates _KeyCtl.kflg --------------------------------------------------------------------------- NAME........._KeyGet DESCRIPTION Get the next keystroke from the BIOS. PROTOTYPE....KeyT PAS _KeyGet(NOARG); ARGUMENTS....None RETURNS ASCII/ScanCode Pair as returned by INT 16h Page 178 TesSeRact CXL V5.5 Documentation --------------------------------------------------------------------------- NAME........._KeyHit DESCRIPTION Check to see if a key is waiting from BIOS PROTOTYPE....IntT PAS _KeyHit(NOARG); ARGUMENTS....None RETURNS 1 if a key is waiting 0 if no key is waiting --------------------------------------------------------------------------- NAME........._KeySet DESCRIPTION Toggle Keyboard Shift-State PROTOTYPE....VOID PAS _KeySet(IntT b, IntT s); ARGUMENTS b - State to toggle s - 0 means turn off, 1 means turn on RETURNS......NONE --------------------------------------------------------------------------- NAME........._KeySta DESCRIPTION Returns the status of the keyboard control keys. PROTOTYPE....WrdT PAS _KeySta(NOARG); ARGUMENTS....None RETURNS Status Word of the Keyboard Flag TesSeRact CXL V5.5 Documentation Page 179 --------------------------------------------------------------------------- NAME.........KqueChk Macro DESCRIPTION This function determines if any keystrokes are waiting in the internal keyboard queue. PROTOTYPE....IntT KqueChk(NOARG); #define KqueChk() (KctlCnt > 0) ARGUMENTS....None RETURNS TRUE if keys are waiting, FALSE otherwise --------------------------------------------------------------------------- NAME.........KqueClr DESCRIPTION Clears the internal keyboard queue. PROTOTYPE....VOID PAS KqueClr(NOARG); ARGUMENTS....None RETURNS......None --------------------------------------------------------------------------- NAME.........KqueGet DESCRIPTION Returns the next keycode from the internal queue. PROTOTYPE....KeyT PAS KqueGet(NOARG); ARGUMENTS....None RETURNS Next keycode; 0 if no keys are in queue Page 180 TesSeRact CXL V5.5 Documentation --------------------------------------------------------------------------- NAME.........KquePut DESCRIPTION Inserts the passed keystroke into the internal keyboard queue. PROTOTYPE....IntT PAS KquePut(KeyT k); ARGUMENTS k - Keystroke to Enqueue RETURNS 0 on success, 1 if queue is full --------------------------------------------------------------------------- NAME.........KqueStr DESCRIPTION Inserts the passed string into the internal keyboard queue. This is an ASCII-only string; scan codes are inserted based on the KscnCod() (Page 176) function. PROTOTYPE....IntT CTYP KqueStr(ChrP s); s - String to Enqueue RETURNS 0 on success, 1 if queue is full TesSeRact CXL V5.5 Documentation Page 181 --------------------------------------------------------------------------- Mouse Access Subsystem --------------------------------------------------------------------------- NAME.........MSclear DESCRIPTION Clear mouse button presses and releases and update _MouCtl. PROTOTYPE....VOID PAS MSclear(NOARG); ARGUMENTS....None RETURNS......None Page 182 TesSeRact CXL V5.5 Documentation --------------------------------------------------------------------------- NAME.........MScurs DESCRIPTION Sets the mouse text cursor type. The mouse cursor can be a hardware or softare cursor. The hardware cursor is the same as the normal cursor you see when you are at the DOS prompt. Because the mouse's hardware cursor is the same as the normal cursor, they can interfere with each other, making this method impractical to use in most cases. The software mouse cursor is a text box that can reveal the underlying character. This is the cursor most used by programs including other TCXL mouse support functions. PROTOTYPE....VOID PAS MScurs(WrdT t, WrdT s, WrdT c); ARGUMENTS t - Cursor Type (0=software, 1=hardware) s - Screen Mask (Software) or Start Scan Line (Hardware) c - Cursor Mask (Software) or End Scan Line (Hardware) If using a software cursor, the screen mask determines which of the characters attributes are preserved. It is ANDed with the screen character and attribute (See Appendix A). The cursor mask is used to determine which of the characteristics are changed by the cursor. The cmask is XORed with the result of (smask AND character-attribute). The bit format for both smask and cmask are: Bit............Content ---............------- 0-7............ASCII character code 8-10...........foreground color 11.............0=intensity off, 1=intensity on 12-14..........background color 15.............0=no blink, 1=blink The default mouse cursor is "Software, Smask=0xFFFF, Cmask=0x7700". RETURNS......None TesSeRact CXL V5.5 Documentation Page 183 --------------------------------------------------------------------------- NAME.........MSgoto DESCRIPTION Sets the mouse cursor coordinates. PROTOTYPE....VOID PAS MSgoto(IntT r, IntT c); ARGUMENTS r - Mouse Row c - Mouse Column RETURNS......None --------------------------------------------------------------------------- NAME.........MShide DESCRIPTION Hides the mouse cursor. PROTOTYPE....VOID PAS MShide(NOARG); ARGUMENTS....None RETURNS......None --------------------------------------------------------------------------- NAME.........MShome DESCRIPTION Home the mouse to the center of the screen and clear the internal counters. PROTOTYPE....VOID PAS MShome(NOARG); ARGUMENTS....None RETURNS......None --------------------------------------------------------------------------- NAME.........MSinit DESCRIPTION Determines if a mouse is present. If so, initializes mouse to the default type, and clears all counters. This function is automatically called during TcxlInit(). PROTOTYPE....IntT PAS MSinit(NOARG); ARGUMENTS....None RETURNS Nonzero if mouse is present. Page 184 TesSeRact CXL V5.5 Documentation --------------------------------------------------------------------------- NAME.........MSkeys DESCRIPTION Assigns key-bindings to mouse buttins, for use with MOU_KEY support. PROTOTYPE....VOID PAS MSkeys(KeyT l, KeyT r, KeyT m); ARGUMENTS l - KeyCode for Left Button (Default [Enter]) r - KeyCode for Right Button (Default [Esc]) m - KeyCode for Middle Button (Default [F1]) RETURNS......None --------------------------------------------------------------------------- NAME.........MSlimit DESCRIPTION Sets the mouse's upper and lower horizontal boundaries, and also sets the left and right vertical boundaries. PROTOTYPE....VOID PAS MSlimit(IntT sr, IntT sc, IntT er, IntT ec); ARGUMENTS sr - Upper Row Boundary sc - Left Column Boundary er - Bottom Row Boundary ec - Right Column Boundary RETURNS......None --------------------------------------------------------------------------- NAME.........MSmove DESCRIPTION Update _MouCtl with info about the movement of the mouse. PROTOTYPE....VOID PAS MSmove(NOARG); ARGUMENTS....None RETURNS......None TesSeRact CXL V5.5 Documentation Page 185 --------------------------------------------------------------------------- NAME.........MSpop DESCRIPTION Pop and return pushed mouse support level and cursor position from _MouCtl. PROTOTYPE....IntT PAS MSpop(NOARG); ARGUMENTS....None RETURNS......None --------------------------------------------------------------------------- NAME.........MSpress DESCRIPTION Update _MouCtl with info about mouse button presses. PROTOTYPE....VOID PAS MSpress(IntT b); ARGUMENTS b - Button (0=left, 1=right, 2=middle) RETURNS......None --------------------------------------------------------------------------- NAME.........MSpush DESCRIPTION Push current mouse support-level and cursor position in _MouCtl and replace with passed parameter. PROTOTYPE....VOID PAS MSpush(IntT m); ARGUMENTS m - New Mouse Support-Level (See Appendix C [Mouse Access Subsystem]) RETURNS......None Page 186 TesSeRact CXL V5.5 Documentation --------------------------------------------------------------------------- NAME.........MSreles DESCRIPTION Update _MouCtl with info about mouse button releases. PROTOTYPE....VOID PAS MSreles(IntT b); ARGUMENTS b - Button (0=left, 1=right, 2=middle) RETURNS......None --------------------------------------------------------------------------- NAME.........MSshow Macro DESCRIPTION Reveals the hidden mouse cursor. PROTOTYPE....VOID MSshow(VOID); #define MSshow() (_MSsho(0)) ARGUMENTS....None RETURNS......None --------------------------------------------------------------------------- NAME.........MSspeed DESCRIPTION Adjusts the mouse's speed by changing its sensitivity. PROTOTYPE....VOID PAS MSspeed(IntT x, IntT y); ARGUMENTS x - Horizontal Speed (higher numbers are slower) y - Vertical Speed (higher numbers are slower) RETURNS......None TesSeRact CXL V5.5 Documentation Page 187 --------------------------------------------------------------------------- NAME.........MSstat DESCRIPTION Update _MouCtl with current mouse position and status. PROTOTYPE....VOID PAS MSstat(NOARG); ARGUMENTS....None RETURNS......None --------------------------------------------------------------------------- NAME.........MSterm DESCRIPTION This function is called automatically by TcxlTerm() (Page 142) to reset the mouse before terminating the program. PROTOTYPE....VOID PAS MSterm(NOARG); ARGUMENTS....None RETURNS......None --------------------------------------------------------------------------- NAME.........MSupdat DESCRIPTION Conditionally hide mouse cursor for conditional update of screen area. PROTOTYPE....VOID PAS MSupdat(IntT sr, IntT sc, IntT er, IntT ec); ARGUMENTS sr - Upper Row Boundary sc - Left Column Boundary er - Bottom Row Boundary sc - Right Column Boundary RETURNS......None Page 188 TesSeRact CXL V5.5 Documentation --------------------------------------------------------------------------- NAME........._MSget DESCRIPTION Internal routine to get current cursor position and update _MouCtl. PROTOTYPE....VOID PAS _MSget(NOARG); ARGUMENTS....None RETURNS......None --------------------------------------------------------------------------- NAME........._MSpos DESCRIPTION Internal routine to position mouse cursor at coordinates stored in _MouCtl. PROTOTYPE....VOID PAS _MSpos(NOARG); ARGUMENTS....None RETURNS......None --------------------------------------------------------------------------- NAME........._MSset DESCRIPTION Internal routine to call mouse software-reset, and force cursor limits to full size of screen as deliminated in BIOS data area. PROTOTYPE....VOID PAS _MSset(NOARG); ARGUMENTS....None RETURNS......None TesSeRact CXL V5.5 Documentation Page 189 --------------------------------------------------------------------------- NAME........._MSsho DESCRIPTION Internal routine to reveal the hidden mouse cursor. If passed parameter is non-zero, only show cursor if MOU_CURS. Also if MOU_CURS, update cursor mask. PROTOTYPE....VOID PAS _MSsho(IntT s); ARGUMENTS s - Flag value (see description) RETURNS......None --------------------------------------------------------------------------- Internal Level Functions Conversion Subsystem --------------------------------------------------------------------------- NAME.........cvtcf DESCRIPTION Converts a TCXL field string to a floating point number. PROTOTYPE....DblT CTYP cvtcf(ChrP fp); ARGUMENTS fp - Pointer to TCXL field string with embedded decimal RETURNS A double precision floating point number. --------------------------------------------------------------------------- NAME.........cvtci DESCRIPTION Converts a TCXL field string to an integer. PROTOTYPE....IntT CTYP cvtci(ChrP fp); ARGUMENTS fp - Pointer to TCXL field string RETURNS An integer number. Page 190 TesSeRact CXL V5.5 Documentation --------------------------------------------------------------------------- NAME.........cvtfc DESCRIPTION Converts a floating point number to a TCXL field string. PROTOTYPE....VOID CTYP cvtfc(ChrP fp, DblT dv, IntT fw, IntT nd); ARGUMENTS fp - Pointer to TCXL field string dv - Floating point number to convert ws - field width nd - number of decimal places to convert RETURNS......None --------------------------------------------------------------------------- NAME.........cvtic DESCRIPTION Converts an integer to a TCXL field string. PROTOTYPE....VOID CTYP cvtic(ChrP fp, IntT iv, IntT fs); ARGUMENTS fp - Pointer to TCXL field string iv - integer value to convert fs - field size RETURNS......None --------------------------------------------------------------------------- NAME.........touplow DESCRIPTION Converts a character to upper or lowercase depending on previous character. This function is used internally by other TCXL functions. PROTOTYPE....IntT CTYP touplow(ChrP s, ChrP p, IntT c); ARGUMENTS s - Pointer to string to base conversion on p - Pointer to current position in string c - Character to convert RETURNS The converted character. SEE ALSO struplow (Page 141) TesSeRact CXL V5.5 Documentation Page 191 --------------------------------------------------------------------------- Format Control Subsystem --------------------------------------------------------------------------- NAME.........FmtBack DESCRIPTION Backspace TCXL format string and output pointer. PROTOTYPE....VOID CTYP FmtBack(ChrI f, ChrI o); ARGUMENTS f - Pointer to Format String (See Appendix E) o - Pointer to Output String RETURNS......None --------------------------------------------------------------------------- NAME.........FmtChar DESCRIPTION Checks given character against a given TCXL character type code, and determines if that character is valid for that type. This function is used internally by several TCXL functions. PROTOTYPE....IntT CTYP FmtChar(IntT c, IntT f); ARGUMENTS c - character to test f - character type code to compare with (See Appendix E) RETURNS 0 - character is not valid for given type code 1 - character is valid for given type code --------------------------------------------------------------------------- NAME.........FmtExcl DESCRIPTION Search TCXL format-string "[]" exclusion set for the passed character. Update passed pointer past ']' and return 1 if character is not in set, else return 0 and leave pointer for next char. Assumes valid format-string. PROTOTYPE....IntT CTYP FmtExcl(ChrI f, IntT c); ARGUMENTS f - Exclusion Set c - Character to search for RETURNS 1 - Character Not Found In Set; 'f' updated past validation list 0 - Character Found Page 192 TesSeRact CXL V5.5 Documentation --------------------------------------------------------------------------- NAME.........FmtFlip DESCRIPTION Modifies a format option bit. PROTOTYPE....VOID CTYP FmtFlip(IntT c); ARGUMENTS c - Format option to change. RETURNS......None --------------------------------------------------------------------------- NAME.........FmtIncl DESCRIPTION Search TCXL format-string "<>" inclusion set for the passed character. Update passed pointer past ']' and return 1 if character is in set, else return 0 and leave pointer for next char. Assumes valid format-string. PROTOTYPE....IntT CTYP FmtIncl(ChrI f, IntT c); ARGUMENTS f - Inclusion Set c - Character To Search For RETURNS 1 - Character Found In Set; 'f' updated past validation list 0 - Character Not Found --------------------------------------------------------------------------- NAME.........FmtInit DESCRIPTION Verify TCXL format string against passed usage. Return 0 on failure, else set globals FmtOpt and FmtUse and return field length on success. PROTOTYPE....IntT CTYP FmtInit(ChrP f, IntT u); ARGUMENTS f - Format String (See Appendix E) u - Usage RETURNS Field length, or Zero on failure TesSeRact CXL V5.5 Documentation Page 193 --------------------------------------------------------------------------- NAME.........FmtPutF Macro DESCRIPTION Sets internal backspace function for FmtBack(); PROTOTYPE....VOID FmtPutF(VfiCP f); #define FmtPutF(f) (FmtPut = (f)) ARGUMENTS f - Backspace Function RETURNS......None --------------------------------------------------------------------------- Near/Far Subsystem There are three basic functions used here. _FarCpy(), _FarGet(), and _FarPut(). Each function is aliased to allow direct access by far pointers, rather than just through segment:offset combinations. There is no additional code used for the aliases, so feel free to use whichever is most convenient for your purposes. --------------------------------------------------------------------------- NAME.........MK_FP Macro .............MK_FPT Macro DESCRIPTION These macros are used to create far pointers from segment/offset combinations. MK_FP creates an anonymous pointer (void far *), while MK_FPT creats a "typed" far pointer, necessary in C++, since C++ does not permit assigning a VOID to a typed pointer. PROTOTYPE....MK_FP(s, o) .............MK_FPT(t, s, o) ARGUMENTS s - Segment Value o - Offset Value t - Type to cast return pointer RETURNS FAR pointer to object Page 194 TesSeRact CXL V5.5 Documentation --------------------------------------------------------------------------- NAME........._FarCpy ............._CpyFar These functions are used to copy data from one far pointer to another. PROTOTYPE....VOID PAS _FarCpy(WrdT st, WrdT ot, WrdT sf, WrdT of, WrdT n); VOID PAS _CpyFar(BytFP t, BytFP f, WrdT n); ARGUMENTS st - Destination Segment ot - Destination Offset t - Far Pointer to Destination sf - Source Segment of - Source Offset f - Far Pointer to Source n - Number of Bytes to copy RETURNS......None --------------------------------------------------------------------------- NAME........._FarGet ............._GetFar DESCRIPTION These functions will copy the specified number of bytes from an explicit far pointer to a pointer of the correct size for the current memory model (either near or far). PROTOTYPE....VOID PAS _FarGet(BytP p, WrdT s, WrdT o, WrdT n); VOID PAS _GetFar(BytP p, BytFP f, WrdT n); ARGUMENTS p - Destination Pointer s - Source Segment o - Source Offset f - Far Pointer to Source n - Number of Characters to copy RETURNS......None TesSeRact CXL V5.5 Documentation Page 195 --------------------------------------------------------------------------- NAME........._FarPut ............._PutFar DESCRIPTION These functions will copy the specified number of bytes from a pointer of the correct size for the current memory model (either near or far) to an explicit far pointer. PROTOTYPE....VOID PAS _FarPut(WrdT s, WrdT o, BytP p, WrdT n); VOID PAS _PutFar(BytFP t, BytP p, WrdT n); ARGUMENTS s - Destination Segment o - Destination Offset t - Far Pointer to Destination p - Source Pointer n - Number of Characters to copy RETURNS......None Page 196 TesSeRact CXL V5.5 Documentation